Difference between ServiceStack's web and dotnet-new tools - servicestack

ServiceStack currently seems to offer two tools for creating projects based on templates.
The dotnet-new (https://docs.servicestack.net/dotnet-new) and the new web .Net Core tool (https://docs.servicestack.net/web-new).
I created the same project type with both tools, and the result looked identical.
They seem very similar, so what is the difference or different uses of which tool?

They both create the same project templates, the primary difference is that dotnet-new is an npm tool and requires npm installed whilst web is a .NET Core tool that requires .NET Core installed.
So they both can create the same project templates although the web tool itself has a lot more other features.

Related

Can you use Windows to develop, build, and publish .NET Core 2.0 services for a Ubuntu based Service Fabric Cluster?

I would like to build .NET Core 2.0 services for a Ubuntu based Service Fabric on my windows machine. From the docs, it seems like I can't use Visual Studios to do this.
Does anyone know the workflow for developing, building, and publishing services in this way? Can't find anything in the docs.
Yes. Anything you compile targeting .NET Core will run on any of the platforms supported by .NET Core. However, there is no built-in publishing support, that would be a separate operation you'd have to set up yourself.
You can find the list of currently supported platforms on the Runtime Identifier page. The current Ubuntu list is:
ubuntu.14.04-x64
ubuntu.14.10-x64
ubuntu.15.04-x64
ubuntu.15.10-x64
ubuntu.16.04-x64
ubuntu.16.10-x64

Target .NET Core 2.0 with Azure Functions in Visual Studio 2017

Since Microsoft has released .NET Core 2.0 for Azure Functions a few days ago, I'm trying to understand how to create a new Functions project in VS2017 targeting .NET Core.
I've tried many configurations and still ended up with .NET 4.7.
Did anyone manage to create a new Function targeting .NET Core?
Thanks.
This is supported with the 1.0.5 release of the Microsoft.NET.Sdk.Functions package.
In your Azure Functions Project, do the following:
Update the Microsoft.NET.Sdk.Functions package version to 1.0.5
Right click on your project, click the Edit <projectname>.csproj option and modify the TargetFramework element value to netstandard2.0
This will should generate .NET Standard 2.0 assemblies with all the artifacts created by the Azure Functions tooling.
As of today I have been able to target .Net Standard 2.0 in a "reasonably" intuitive way and without editing any .csproj files.
You need a reasonably recent version of Visual Studio. I'm using Visual Studio Professional 15.5.3 (although I would guess that community would work).
You need to have the Azure development workload installed. This will install an extension called Azure Functions and Web Jobs Tools.
So far so plain vanilla. There were 2 additional bits that were to me not at all intuitive but ended up being very easy to do - easy when you know how!
You need to make sure that the Azure Functions and Web Jobs Tool is 15.0.31114.0 or greater - that's when they added .net core 2.0 support (see https://github.com/Azure/Azure-Functions/blob/master/VS-AzureTools-ReleaseNotes.md). You can update this using Tools/Extensions and Updates, or see https://marketplace.visualstudio.com/items?itemName=VisualStudioWebandAzureTools.AzureFunctionsandWebJobsTools
Even when you've done that, Visual Studio is a tiny bit weird about letting you create Azure Functions that target .net 2.0. When you go File/New Project, nothing has changed in the list of available project types, and if you select Azure Functions, the list of Frameworks just shows .NET Framework *, no .NET Standard, no .NET Core.
But if at this point you persevere and select Azure Functions, you then get a new dialog I hadn't seen before, which allows you to select Azure Functions v2 Preview (.NET Core).
Now, when I then look at the project properties, it turns out it is targeting .NET Standard 2.0, which in turn seems to contain Microsfot.NETCore.Platforms (1.1.0). So is this .net core 2.0 or not? Not quite sure but its' good enough for my purposes so now going to tuck into some coding.
Cheers!
For now, it's a manual process. You need to create .NET Standard 2.0 library, add function.json manually and run it with core tools.
the package Microsoft.NET.Sdk.Functions does not yet support .NET Standard 2.0 class libraries. This is the package that identifies a project as Functions project to Visual Studio and generates function.json from attributes during build.
You can still author C# class libraries that target .NET Standard 2.0, but you must use a manually-authored function.json. The templates for C# class libraries aren’t yet available in the Core Tools, but you can get a sample from GitHub.
from Develop Azure Functions on any platform
Update: 1.0.5 version of SDK should now support it, as mentioned by Fabio.

Using Azure packages with .NET Core / MVC

I'm exploring Core MVC 1.0.
Is it possible to use Azure nuget packages I've been using in the past in previous Web API projects? For example, I've been using Microsoft.Azure.Mobile.Server.Notifications which gives me extension methods on HttpConfiguration that I can use in my controllers like:
var pushClient = Configuration.GetPushClient();
But I understand HttpConfiguration no longer exists.
Is there any way to use Azure packages like this with MVC controllers, or should I just be waiting until they release versions that target .net core? If so, are they even working on this? I can find anything anywhere.
Technically you can work with ASP.NET Core packages targetting the Full Framework too. We have several apps that are targetting netcoreapp and others targetting net461 due to Azure packages, but both use ASP.NET Core packages. Of course, this is valid if your environment has the Full Framework (Azure App Service does).
You can see how both the netcoreapp and net46 versions go related to NetStandard here.
To achieve this, remove the Microsoft.NETCore.App from the dependencies and change netcoreapp1.0 to net461 on your frameworks declaration.
When the NetCore-compatible packages go live, just reverse the change and your app will keep working.
With regard to the Mobile Apps Server SDK support for ASP.NET Core, the work is on our backlog, but we don't have a timeline to share. This is partly because some of the dependencies (such as Asp.NET OData and OData) don't yet support ASP.NET Core.
In the meantime, you could try #matias-quaranta's answer for how to use both together.

VS2015 Properly Targeting .Net Framework 4.6.1 with new Web Application Project or Class Library

I've created a new Web Application Project in VS2015 using the newer aspnet5 templates. However I can't seem to find a straight answer on how to specifically target the .NET 4.6.1 Framework with it. Looking at the pictures below can someone please shed some light on how to use the newer prject structures but target the .NET Framework 4.6.1 with them. According to microsoft this is possible but I can't make heads or tails on specifically how to do this.
The old and new ways are shown below.
The new way below shows use specific runtime...
With the following showing in the references
The old way seemed much more straight forward. Showing a specifically targeted framework.
The same problem exist for Class Library projects where it seems to want to target an SDK vs a particular version of the framework.
I believe you need to set your DNX_IIS_RUNTIME_FRAMEWORK environment variable to "DNX461". I found this question relevant.

Portable(in USB drive) C# CRUD apps

I need to write app from C# that do CRUD with database.and also it shuld look up for .net framework and install it if particular pc doesn't have it.user must be able to do crud things from the place he finished in previous computer
can you suggest me:
Database to use
Any class libraries for this
Any special considerations
I m using vs 2010 with .net framwork 4
A bit offtopic:
Actually "portable app" philosophy mean not only it could run without any installation process but also it will not leave any trails after itself. It including various frameworks installation.
To avoid any installations or registry trails - check portableapps.com, they have pretty neat toolset to make any app portable. They have Java-vm solution for sure, don't remember about .NET solution.

Resources