Adam Cogan What’s new in Visual Studio 14 @AdamCogan | Chief Architect @ SSW | Microsoft Regional Director @AdamCogan #auteched #NetUG.

Download Report

Transcript Adam Cogan What’s new in Visual Studio 14 @AdamCogan | Chief Architect @ SSW | Microsoft Regional Director @AdamCogan #auteched #NetUG.

Adam Cogan
What’s new in Visual
Studio 14
@AdamCogan | Chief Architect @ SSW | Microsoft Regional Director
@AdamCogan #auteched #NetUG
About me
www.adamcogan.com | www.ssw.com.au
Chief Architect at SSW
•
Developing custom solutions
•
Perform Software Audits
Microsoft Gold Partner
Microsoft Regional Director
ASP Insider
ALM MVP
•
MVP of the year 2011
@AdamCogan
@AdamCogan #auteched #NetUG
@AdamCogan #auteched #NetUG
A trip down memory lane (Taylor Square – Oxford St Sydney)
@AdamCogan #auteched #NetUG
VS 2002
•
Web Forms
•
XML Web Services
•
Windows Forms
@AdamCogan #auteched #NetUG
VS 2003
• .NET 1.1
• Mobile Devices
(ASP.NET)
• Compact Framework
• Enterprise Templates
@AdamCogan #auteched #NetUG
VS 2005
•
.NET 2.0
•
Generics
•
Click Once
•
Web
•
•
ASP.NET 2.0
•
Local web server (Cassini)
Testers
•
Web Tests
@AdamCogan #auteched #NetUG
VS 2008
•
.NET 3.5
•
LINQ, LINQ to SQL
•
WPF/HTML Designers
•
Web
• MVC 1.0
• JavaScript IntelliSense
•
Testing
•
Web/Load Testing
@AdamCogan #auteched #NetUG
VS 2010
•
.NET 4.0
•
F#
•
Parallel Extensions
•
Quick Search (Navigate to)*
•
IntelliTrace
•
Web
• MVC 2 & 3
•
Testers
•
Test Manager
•
Coded UI Tests
@AdamCogan #auteched #NetUG
VS 2012
•
Metro Modern UI!
•
Search + Quick Launch
•
Faster Add References
•
NuGet
•
New Team Explorer
•
Storyboarding with PPT
•
IntelliTrace in Prod
•
Web
•
•
MVC 3 & 4
•
Page Inspector
•
CSS & HTML5
•
Debug in Chrome*
Testers
•
Exploratory Testing
•
Feedback Too
@AdamCogan #auteched #NetUG
VS 2013
• TFS Online
• Git Support
• TypeScript
• Web
•
MVC 5 + WebAPIs
•
Browser Link
•
Twitter Bootstrap
•
OAuth
• 64 bit Edit & Continue
• CTRL + ,
• Peek, Code Lens,
CodeMap
• Sync Preferences
@AdamCogan #auteched #NetUG
Browser Link
• Uses SignalR to push changes to connected
browsers
• Update HTML, CSS
• Refresh multiple browsers
• Design mode
@AdamCogan #auteched #NetUG
@AdamCogan #auteched #NetUG
@AdamCogan #auteched #NetUG
Browser Link + Web Essentials
• Make changes in the browsers dev tools, save back
to VS
• Find unused CSS
• http://vswebessentials.com/features/browserlink
@AdamCogan #auteched #NetUG
A trip down memory lane
What’s new
Agenda
Mobile Development
ASP.NET vNext
Summary
@AdamCogan #auteched #NetUG
What’s New
In the 2013 Updates
@AdamCogan #auteched #NetUG
VS
2013.1
• Better support for IE < 10
• Bug fixes
@AdamCogan #auteched
http://support.microsoft.com/kb/2911573
#NetUG
VS
2013.2
• Import from VSO
• SQL 2014 support
• Work Item Tagging
• Add charts to project
portal
• Backlog management
improvements
•
Non-working days
•
Performance
• Git improvements
(blame)
• Web
•
Improved
JSON/Sass/Less
editors
•
TypeScript 1.0
• Testing
•
Cloud load testing + App
Insights integration
http://support.microsoft.com/kb/2927432/en-us
@AdamCogan #auteched #NetUG
VS
2013.3
• CodeLens for Git
• App Insights bundled
in
• Azure Mobile Service
project
• Configurable display on
‘in progress’ items on the
backlog
• Cordova tooling
@AdamCogan #auteched #NetUG
http://support.microsoft.com/kb/2933779
2014 VSO /
ALM…
• Monaco
• Live editing of
Azure Sites
• App Insights
•
Monitoring of availability
•
+ Make bug tracking
•
+ Performance issues
•
+ usage tracking part of
your ALM process
• Pull Requests
for Git
@AdamCogan #auteched #NetUG
Monaco Editor for VS Online
• ? LinqPad
• Git Client
• Code Editor
• Almost as good as VS (desktop)
•
Intellisense
•
Highlight references/usage
@AdamCogan #auteched #NetUG
@AdamCogan #auteched #NetUG
Boring title, let’s make it
more exiting
@AdamCogan #auteched #NetUG
@AdamCogan #auteched #NetUG
An afterthought?
@AdamCogan #auteched #NetUG
@AdamCogan #auteched #NetUG
@AdamCogan #auteched #NetUG
Add a dash of excitement
@AdamCogan #auteched #NetUG
@AdamCogan #auteched #NetUG
@AdamCogan #auteched #NetUG
Application Insights
•
Monitoring availability, bugs, performance, usage
•
Adds reporting to all your apps
•
Telemetry - See how users are using your applications
•
Logs data to VS Online
•
Helps you inspect and adapt – ALM lifecycle
•
http://rules.ssw.com.au/WebSites/RulesToBetterApplicationInsights/
Pages/Do-you-know-the-process-to-improve-the-health-of-yourweb-application.aspx
@AdamCogan #auteched #NetUG
@AdamCogan #auteched #NetUG
@AdamCogan #auteched #NetUG
@AdamCogan #auteched #NetUG
@AdamCogan #auteched #NetUG
When should we deploy?
@AdamCogan #auteched #NetUG
@AdamCogan #auteched #NetUG
Git Pull Requests
• TFS History ?
• Annotate (and Blame) rock
• Git Pull Requests give code review abilities
• http://blogs.msdn.com/b/visualstudioalm/archive/201
4/06/10/git-pull-request-visual-studio-online.aspx
@AdamCogan #auteched #NetUG
Jamal – the new guy
@AdamCogan #auteched #NetUG
@AdamCogan #auteched #NetUG
Adam - What did Jamal change?
Review the pull request
Adam
@AdamCogan #auteched #NetUG
Summary of reviewers’ comments
Adam
@AdamCogan #auteched #NetUG
Accepting or Rejecting
Adam
@AdamCogan #auteched #NetUG
VS 2014
• ??
@AdamCogan #auteched #NetUG
What’s New
In Visual Studio 14
@AdamCogan #auteched #NetUG
Biggest User Gripe
@AdamCogan #auteched #NetUG
“Change All CAPS Menu in VS 2012 to VS
Beta format File Edit Instead of FILE EDIT”
(3056 votes)
https://visualstudio.uservoice.com/forums/121579-visual-studio/suggestions/2837384-change-all-caps-menu-in-vs-2012-to-vs-beta-format
“REMOVE "ALL CAPS"” (2072 votes)
https://visualstudio.uservoice.com/forums/121579-visual-studio/suggestions/2628203-remove-all-caps
@AdamCogan #auteched #NetUG
VS 2014
@AdamCogan #auteched #NetUG
Developer Goodies
1.
Roslyn
•
http://visualstudiomagazine.com/articles/2012/03/20/10-questions10-answers-on-roslyn.aspx
•
http://blogs.msdn.com/b/dotnet/archive/2014/02/24/a-new-look-fornet-reference-source.aspx [video] Framework bugs? Reflector
•
Compilers for C# and VB.NET exposed as services
via API
Eg. SSW Code Auditor has Roslyn compiled Rules
•
APIs for Code Analysis and Refactoring
Eg. SSW Code Auditor can work like CodeLens and highlight errors in the IDE
Resharper
@AdamCogan #auteched #NetUG
2.
New language operators
3.
More refactoring
“Add "?.“ null propagating operator to C#”
(5389 votes)
https://visualstudio.uservoice.com/forums/121579-visual-studio/suggestions/3990187-add-operator-to-c
@AdamCogan #auteched #NetUG
VS 2013
VS 2014
if (a != null)
{
a.Dispose();
}
a?.Dispose();
event EventHandler OnDoStuff;
event EventHandler OnDoStuff;
void DoStuff()
{
if (OnDoStuff != null)
{
OnDoStuff.Invoke(this, new EventArgs());
}
}
void DoStuff()
{
OnDoStuff?.Invoke(this, new EventArgs());
}
@AdamCogan #auteched #NetUG
? = if it’s not null
2. Other Language features from
Roslyn
a. Auto Property Initializers
b. Declaration Expressions
c. Primary constructors
@AdamCogan #auteched #NetUG
a. Auto Property Initializers
VS 2013
public class Foo
{
public int Bar { get; set; }
public Foo()
{
Bar = 5;
}
}
Note: Don’t have to declare a constructor just to set defaults
@AdamCogan #auteched #NetUG
VS 2014
public class Foo
{
public int Bar { get; set; } = 5;
}
b. Declaration Expressions
VS 2013
public void Stuff()
{
var a = "123";
int b;
int.TryParse(a, out b);
}
@AdamCogan #auteched #NetUG
VS 2014
public void Stuff()
{
var a = "123";
int.TryParse(a, out var b);
}
c. Primary Constructors
VS 2013
public class FooBar
{
public int X { get; set; }
public int Y { get; set; }
public FooBar (int x, int y)
{
X = x;
Y = y;
}
}
@AdamCogan #auteched #NetUG
VS 2014
public class FooBar(int x, int y)
{
public int X { get; set; } = x;
public int Y { get; set; } = y;
}
Auto Property Initializers
Other Language features from Roslyn
•
For a full list see
•
https://roslyn.codeplex.com/wikipage?title=Language%20Feature%20Status
&referringTitle=Home
String interpolation
"{0} {1} is {2} years old.“, p.First, p.Last, p.Age
"\{p.First} \{p.Last} is \{p.Age} years old."
•
Now developers are now 50% more efficient.
•
You can write the same thing with 50% less code
•
Bosses will now ask us to ship 50% faster ;)
@AdamCogan #auteched #NetUG
Warning: You need to modify the project file to enable
these new language features
<OutputPath>bin\Debug</OutputPath>
<DefineConstants>DEBUG;TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
<LangVersion>experimental</LangVersion>
3. More Refactoring… Get #
Gives you a preview of the
refactoring
@AdamCogan #auteched #NetUG
Improved Tool Tips
VS 2013
@AdamCogan #auteched #NetUG
VS 2014
Improved Tool Tips
VS 2013
@AdamCogan #auteched #NetUG
VS 2014
A trip down memory lane
What’s Next
Mobile Development
Agenda
ASP.NET vNext
Summary
@AdamCogan #auteched #NetUG
Mobile Development
With Xamarin Forms
@AdamCogan #auteched #NetUG
Developers
Developers
Developers
@AdamCogan #auteched #NetUG
Mobile First
Mobile First
Mobile First
+ Cloud First
@AdamCogan #auteched #NetUG
How many mobile options?
• ?
• Native
• Hybrid - HTML5 + Javascript/TypeScript (Cordova)
• Cross Compilers (Xamarin)
@AdamCogan #auteched #NetUG
Cordova
• Write shared code in HTML and
Javascript
• Compiles into a Hybrid App on
Windows Phone, Android and
iOS
• VS2013 Update 3
@AdamCogan #auteched #NetUG
Suggestion
Actual?
@AdamCogan #auteched #NetUG
@AdamCogan #auteched #NetUG
It’s still in CTP!
@AdamCogan #auteched #NetUG
@AdamCogan #auteched #NetUG
@AdamCogan #auteched #NetUG
@AdamCogan #auteched #NetUG
@AdamCogan #auteched #NetUG
@AdamCogan #auteched #NetUG
Ripple?
Apache Ripple is a web based mobile environment
simulator
@AdamCogan #auteched #NetUG
How do you tell when you are in a Hybrid App?
• ?
• When it’s sucky and clunky
• See if they are using native UI elements
•
E.g. Gmail when you swipe to delete it’s a different style button
• Show me a Hybrid app as good as Runkeeper and
I’ll switch
@AdamCogan #auteched #NetUG
Spot the hybrid app
@AdamCogan #auteched #NetUG
iOS
@AdamCogan #auteched #NetUG
Android
@AdamCogan #auteched #NetUG
“There’s two kinds of mobile developers.
Those developing native apps
and those that wish they were”
@AdamCogan
Microsoft + Xamarin
• Mono…. “Microsoft support Miguel”
• .NET Foundation – Open sourcing .NET
• http://www.dotnetfoundation.org
• Microsoft contributed Roslyn
• Roslyn makes it easier for .NET apps to run on Mac and
Linux
• Microsoft and Xamarin are closely working together
@AdamCogan #auteched #NetUG
Xamarin is cool because…
•
? Write C#
•
Build native mobile apps
•
3 apps - Learn the Xamarin API, deploy to many devices
•
Less learning - Provides an abstraction over the native APIs
•
Goal is to use the lowest common denominator
•
Not limited - Still lets you directly call the native APIs
•
Still need to code the UI natively for each platform
@AdamCogan #auteched #NetUG
Xamarin.Forms
• Abstraction over the UI
• Compiler will convert the UI
elements into their native
counterparts
• Can still do native
customizations
@AdamCogan #auteched #NetUG
Sexy UI designer…
var profilePage = new ContentPage {
Title = "Profile",
Icon = "Profile.png",
Content = new StackLayout {
Spacing = 20, Padding = 50,
VerticalOptions = LayoutOptions.Center,
Children = {
new Entry { Placeholder = "Username" },
new Entry { Placeholder = "Password", IsPassword = true },
new Button {
Text = "Login",
TextColor = Color.White,
BackgroundColor = Color.FromHex("77D065") }}}
};
var settingsPage = new ContentPage {
Title = "Settings",
Icon = "Settings.png",
(...)
};
var mainPage = new TabbedPage { Children = { profilePage, settingsPage } };
@AdamCogan #auteched #NetUG
Compiles and uses Native Controls
@AdamCogan #auteched #NetUG
Sexy UI designer…
You can either use:
• C#
• XAML (no designer)
@AdamCogan #auteched #NetUG
Pages
@AdamCogan #auteched #NetUG
Layouts
@AdamCogan #auteched #NetUG
Controls
ActivityIndicator
Image
SearchBar
EntryCell
BoxView
Label
Slider
ImageCell
Button
ListView
Stepper
DatePicker
Map
TableView
Editor
OpenGLView
TimePicker
Entry
@AdamCogan #auteched #NetUG
Picker
WebView
SwitchCell
TextCell
ViewCell
Building a mobile app for SSW Rules
http://rules.ssw.com.au/
• Category
•
Sub Category
•
Rules
@AdamCogan #auteched #NetUG
#exploring demo
1. File | New Project
2. F5
3. Add 2 content page (stack layout + grid layout)
4. Add a menu - Group the pages into a tabbed page
@AdamCogan #auteched #NetUG
Demo #1
File | New Project
@AdamCogan #auteched #NetUG
@AdamCogan #auteched #NetUG
If you have a Mac
on the network you
can install the Build
host to build the
iOS project
@AdamCogan #auteched #NetUG
Shared Project
Android
iOS
Windows Phone
@AdamCogan #auteched #NetUG
F5 – Start testing on the two biggest mobile platforms
@AdamCogan #auteched #NetUG
Anyone running
Android?
@AdamCogan #auteched #NetUG
@AdamCogan #auteched #NetUG
Bad Android devs think they have 1
option
Use the emulator
@AdamCogan #auteched #NetUG
The good Android devs know they have 3
more options
• Use a device
• Use genymotion.com (but you have to give up
Hyper-V and the Windows Phone emulator)
• Or Hyper-V haxm (open GL drivers and x86
optimization for the android emulator)
@AdamCogan #auteched #NetUG
And the 2nd major
mobile platform…
@AdamCogan #auteched #NetUG
Windows Phone emulator uses
Hyper-V
@AdamCogan #auteched #NetUG
Demo #2
Showing off the
controls – Stack
Layout
@AdamCogan #auteched #NetUG
Stack Layout with 4 controls
@AdamCogan #auteched #NetUG
@AdamCogan #auteched #NetUG
@AdamCogan #auteched #NetUG
Demo #3
Showing off the
controls – Grid Layout
@AdamCogan #auteched #NetUG
Grid Layout with 4 rows and 3 columns
@AdamCogan #auteched #NetUG
@AdamCogan #auteched #NetUG
Add some content and colour
// Column 0 to Column
grid.Children.Add(new
// Column 0, Row 1
grid.Children.Add(new
// Column 1, Row 1
grid.Children.Add(new
// Column 0, Row 2
grid.Children.Add(new
// Column 1, Row 2
grid.Children.Add(new
// Column 2 to Column
grid.Children.Add(new
// Column 0 to Column
grid.Children.Add(new
// Column 2, Row 3
grid.Children.Add(new
3, Row 0 to Row 1
Label { Text = "Label 1", HorizontalOptions = LayoutOptions.Center }, 0, 3, 0, 1);
Label { Text = "Label 2", TextColor = Color.White, BackgroundColor = Color.Lime }, 0, 1);
BoxView { Color = Color.Red }, 1, 1);
BoxView { Color = Color.Blue }, 0, 2);
Label { Text = "Label 3", TextColor = Color.Purple, BackgroundColor = Color.Gray }, 1, 2);
3, Row 1 to Row 3
Label { Text = "Label 4", TextColor = Color.Yellow, BackgroundColor = Color.Navy }, 2, 3, 1, 3);
2, Row 3 to Row 4
Label { Text = "Label 4", TextColor = Color.Red, BackgroundColor = Color.Silver }, 0, 2, 3, 4);
Label { Text = "Label 5", TextColor = Color.Aqua, BackgroundColor = Color.Red }, 2, 3);
Content = grid;
@AdamCogan #auteched #NetUG
4 rows
3 columns
@AdamCogan #auteched #NetUG
@AdamCogan #auteched #NetUG
Demo #4
Showing off the
controls – Add a
Tabbed Page
@AdamCogan #auteched #NetUG
Tabbed Page showing our Stack and
Grid
public static Page GetMainPage()
{
return new TabbedPage
{
Children =
{
new StackLayoutPage { Title = "Stack" },
new GridLayoutPage { Title = "Grid"}
}
};
}
@AdamCogan #auteched #NetUG
@AdamCogan #auteched #NetUG
Demo #5
Create SSW Rules
App
@AdamCogan #auteched #NetUG
#realapp
1. Start coding our Rules app [5 content pages]
1. Category Page
2. Sub Category Page
3. Rules List page
4. Rule Page #shortcut
5. Search Page …
@AdamCogan #auteched #NetUG
Now the serious stuff…
Building the SSW Rule App
Category Page
• Add Nuget package (REST rules.ssw.com.au)
• Load the list of top level categories
•
Bind
• When we ‘click’, go to sub categories
@AdamCogan #auteched #NetUG
Create a template for the list view
public RuleCategoryPage(string url)
{
Title = "SSW Rules";
BaseUrl = url;
ListView = new ListView();
// Create a template for out list view
var cell = new DataTemplate(typeof(TextCell));
cell.SetBinding(TextCell.TextProperty, "Title");
ListView.ItemTemplate = cell;
Content = new StackLayout()
{
VerticalOptions = LayoutOptions.FillAndExpand,
Children = { ListView }
};
@AdamCogan #auteched #NetUG
Create a DataTemplate
for the ListView,
bind the Text property to
“Title” in our data
Load categories, bind on load
protected override async void OnAppearing()
{
base.OnAppearing();
Call SharePoint REST
API to grab our
categories
// Create our sharepoint rules client
var client = new SswSharePointRulesClient();
// Get a list of toplevel categories
var categoryResult = client.GetRuleCategories(BaseUrl);
var categories = await categoryResult;
ViewModel = new RuleCategoryViewModel()
{
Categories = new ObservableCollection<RuleCategoryModel>(categories)
};
// Bind out results to the list view
ListView.ItemsSource = ViewModel.Categories;
}
@AdamCogan #auteched #NetUG
Bind results to our list
view
Add event handlers – Item Selected
public RuleCategoryPage(string url)
{
Title = "SSW Rules";
BaseUrl = url;
ListView = new ListView();
// Create a template for out list view
var cell = new DataTemplate(typeof(TextCell));
cell.SetBinding(TextCell.TextProperty, "Title");
ListView.ItemTemplate = cell;
Attach an event handler to
the ItemSelected event
Content = new StackLayout()
{
VerticalOptions = LayoutOptions.FillAndExpand,
Children = { ListView }
};
ListView.ItemSelected += OnListViewOnItemSelected;
}
protected virtual void OnListViewOnItemSelected(object sender, SelectedItemChangedEventArgs args)
{
var category = (RuleCategoryModel)args.SelectedItem;
var subCategoryPage = new RuleSubCategoryPage(category.Url);
Navigation.PushAsync(subCategoryPage);
}
@AdamCogan #auteched #NetUG
Instantiate the
RuleSubCategory page with
the Url of the category
Change the current page
@AdamCogan #auteched #NetUG
#shortcut
View the Rule with a WebView (XAML)
<?xml version="1.0" encoding="utf-8" ?>
WebView is basically an
<ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
iframe
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
x:Class="SSW.Rules.Mobile.RuleContentXamlPage" >
<WebView VerticalOptions="FillAndExpand" HorizontalOptions="FillAndExpand"
Source="{Binding Url}" />
</ContentPage>
Set the Source as the URL
of our rule
@AdamCogan #auteched #NetUG
@AdamCogan #auteched #NetUG
Demo #6
Add a search page
@AdamCogan #auteched #NetUG
Create a Search Page
• SearchBar
• Label for result count
• ListView to show the results
@AdamCogan #auteched #NetUG
@AdamCogan #auteched #NetUG
REST APIs
•
TFS - https://tfsodata.visualstudio.com/ (bad ODATA – read only)
•
TFS - https://visualstudio.com/integrate (good REST)
•
REST APIs rock
•
https://developers.google.com/
•
https://developers.facebook.com/
•
https://dev.twitter.com/
•
https://developer.nokia.com/
•
https://developer.github.com/
•
http://developer.xamarin.com/
•
https://Developer.visualstudio.com
@AdamCogan #auteched #NetUG
REST APIs
• SharePoint - http://msdn.microsoft.com/en-us/library/office/jj860569(v=office.15).aspx
• Office 365 - http://msdn.microsoft.com/en-us/library/office/dn605892(v=office.15).aspx
• Azure - http://msdn.microsoft.com/en-us/library/azure/ee460799.aspx
•
Even better would be to use the .NET libraries
http://www.bradygaster.com/post/getting-started-with-the-windows-azure-
management-libraries
• Yours?
• Note: RestSharp is a great .NET library for calling REST apis
@AdamCogan #auteched #NetUG
Hot Tip – Resharper templates for
Xamarin.Forms
https://github.com/glennstephens/xfTemplates
@AdamCogan #auteched #NetUG
A trip down memory lane
What’s Next
Mobile Development
Agenda
ASP.NET vNext
Summary
@AdamCogan #auteched #NetUG
ASP.NET vNext
State of the Web
@AdamCogan #auteched #NetUG
Last Year I recommended…
MVC4 + WebAPI + TypeScript + KnockoutJS
MVC5 ?
@AdamCogan #auteched #NetUG
What’s changed in vNext?
MVC 6
•
project.json (was dependencies)
•
config.json (was web.config)
•
Startup class (was \App_Start + global.asax)
•
ApiController is Controller
•
Compile ahead of time, no need to compile to see changes
•
Dependency Injection included
•
+…
@AdamCogan #auteched #NetUG
@AdamCogan #auteched #NetUG
Everything is a NuGet package
Restoring packages for c:\users\ericphan\documents\visual studio 14\Projects\WebApplication3\WebApplication3\project.json
Attempting to resolve dependency WebApplication3 >= 1.0.0
Attempting to resolve dependency EntityFramework.SqlServer >= 7.0.0-alpha2
OPEN EntityFramework.SqlServer.7.0.0-alpha2.nupkg
OPEN EntityFramework.SqlServer.7.0.0-alpha2\EntityFramework.SqlServer.7.0.0-alpha2.nuspec
Attempting to resolve dependency Microsoft.AspNet.Mvc >= 6.0.0-alpha2
OPEN Microsoft.AspNet.Mvc.6.0.0-alpha2.nupkg
OPEN Microsoft.AspNet.Mvc.Common.6.0.0-alpha2.nupkg
:
:
OPEN Microsoft.AspNet.Mvc.Razor.Host.6.0.0-alpha2\Microsoft.AspNet.Mvc.Razor.Host.6.0.0-alpha2.nuspec
Attempting to resolve dependency EntityFramework.Migrations >= 7.0.0-alpha2
OPEN EntityFramework.Migrations.7.0.0-alpha2.nupkg
OPEN EntityFramework.Migrations.Design.7.0.0-alpha2.nupkg
OPEN EntityFramework.Migrations.7.0.0-alpha2\EntityFramework.Migrations.7.0.0-alpha2.nuspec
OPEN EntityFramework.Migrations.Design.7.0.0-alpha2\EntityFramework.Migrations.Design.7.0.0-alpha2.nuspec
@AdamCogan #auteched #NetUG
project.json
• Add references to NuGet packages here
• Full intellisense
• IIS/Hosting configuration
@AdamCogan #auteched #NetUG
@AdamCogan #auteched #NetUG
No more web.config
• config.json
• project.json
@AdamCogan #auteched #NetUG
Web.config
@AdamCogan #auteched #NetUG
config.json
Stores connection strings and other app settings
{
"Data": {
"DefaultConnection": {
"ConnectionString":
"Server=(localdb)\\mssqllocaldb;Database=aspnetvnext-WebApplication3-15606acb-81ef4c1e-97c1-ac0b2d4e4a33;Trusted_Connection=True;MultipleActiveResultSets=true"
}
}
}
@AdamCogan #auteched #NetUG
Startup.cs
•
Define what services and features this app will be using
•
Services
•
EF
•
MVC
•
Routes
•
Features
•
•
BrowserLink
•
Static Files
Authentication
@AdamCogan #auteched #NetUG
Dependency Injection
• Built in
• Startup.cs uses it
using Microsoft.Framework.DependencyInjection;
public class Startup
{
public void Configure(IBuilder app)
@AdamCogan #auteched #NetUG
WebAPI and Controllers in one
public class ValuesController : Controller
{
// GET /values
public string Get() { return "Values"; }
// GET /values/1
public string Get(int id) { return "Value " + id.ToString(); }
// POST /values
public ActionResult Post() { return new HttpStatusCodeResult(201); }
}
@AdamCogan #auteched #NetUG
This Year I recommend…
MVC + WebAPI + TypeScript+ AngularJS
KnockoutJS
SPA apps
Application Insights
@AdamCogan #auteched #NetUG
A trip down memory lane
What’s Next
Mobile Development
Summary
ASP.NET vNext
Summary
@AdamCogan #auteched #NetUG
2 things...
@AdamCogan #auteched #NetUG
Tweet your favourite feature
@AdamCogan #NetUG
@AdamCogan #auteched #NetUG
Check out tv.ssw.com
Tweet your favourite video @SSWTV
@AdamCogan #auteched #NetUG
Thank you!
[email protected]
www.ssw.com.au
Sydney | Melbourne | Brisbane | Adelaide
@AdamCogan #auteched #NetUG
Related content
@AdamCogan #auteched #NetUG
Track resources
Resource 1
Resource 2
Resource 3
Resource 4
@AdamCogan #auteched #NetUG
FireBootCamp Presents
www.firebootcamp.com
@AdamCogan #auteched #NetUG
@AdamCogan #auteched #NetUG
Thank you!
[email protected]
www.ssw.com.au
Sydney | Melbourne | Brisbane | Adelaide
@AdamCogan #auteched #NetUG