Aspnetcore: Start developing netcore 2.0 for deploy in 3 o 4 months?

Created on 6 Jul 2017  路  22Comments  路  Source: dotnet/aspnetcore

Hello!!!!
I have to develop webapi application that is approximately 4 months long duration.
Within this scope, will release some "stable" version or release of netcore2.0?
You recommend use for the development with NetCore, or use directly with Webapi from NetFramework 4.6 (or 4.7).
Thanks!
Greetings from Argentina!

Most helpful comment

We've developed SaaS application in ASP.NET Core 1.0 and as the time came for the production, we upgraded it to 1.1 before moving to production.

Believe me, it is a quite large multi tier well architectured application and performing very well. We didn't face any limitations in the framework so far. We are using EF Core and ASP.NET Core Identity.

Thanks,

All 22 comments

I would strongly advice not to do so as even 1.1 is still buggy enough to not to put it in prod. You can check issues page. 502 3 error cones suddenly every week and nobody cam fix it. We had to roll back tge whole project back to 4.6. Think twice. Too early at this stage imho

@nicksav it could be a good advice :+1:
@Tratcher I saw the roadmap, but all other things ( EF core or ORM, Task Queue)

the most important thing, anyone who put in production netcore?
Some "success stories" ?

There's a reddit thread with people using it in production https://www.reddit.com/r/dotnet/comments/6m88q7/whos_actually_using_net_core_in_production/

@davidfowl thanks!

We've developed SaaS application in ASP.NET Core 1.0 and as the time came for the production, we upgraded it to 1.1 before moving to production.

Believe me, it is a quite large multi tier well architectured application and performing very well. We didn't face any limitations in the framework so far. We are using EF Core and ASP.NET Core Identity.

Thanks,

thanks @goforgold !
Where do you deploy the application? (amazon, azure, dockerized?)
the last-one question... how do you apply your migrations? (if not use azure).

I'm trying to "deploy" a Heroku webapi, and use Database Service from any place (azure, amazon).
But... I Don't know if linode could be a more simple approach, and support for Netcore (or dockerized :) )

It is on AWS Win Server.

We use TeamCity and Octopus to code deployments. For applying SQL Server db migrations, we use DbUp.

We are doing another product dev which is planned to go live in Nov, recently upgraded to 2.0 Preview 2 which is deployed on (for UAT) in AWS (Amazon Linux AMI) with Postgres database on RDS. For now we build and deploy using Bitbucket pipelines only and apply migrations manually by generating SQL scripts from CLI and running it over server.

@goforgold can you share step by step instructions how to manually by generating SQL scripts from CLI and running it over server ?

@MichaelSimons

For initial or first migration,

  • Create migration (first or initial) using dotnet ef migrations add <migration-name>
  • Generate SQL script using dotnet ef migrations script -o <output.sql>

Subsequently (when you've generated script for your first migration

  • Add migration using dotnet ef migrations add <migration-name>
  • Generate script using `dotnet ef migrations script

To simplify process for subsequent migrations, I've written a script which will find names for your last two migrations and create migration script by putting their names in migration script command automatically.

Gist for script (Win Bash CMD)
https://gist.github.com/goforgold/c7ea6da0a5f13784007b36c66ec94666

Note: Use script when you've generated at least two migrations, one initial and another one for which you want to generate sql script.

Let me know if I can be of further help.

Thank you. I will try this approach.

@goforgold

We are doing another product dev which is planned to go live in Nov, recently upgraded to 2.0 Preview 2 which is deployed on (for UAT) in AWS (Amazon Linux AMI) with Postgres database on RDS.

How much cost this approach? in dollars and configuration of Amazon?

For now we build and deploy using Bitbucket pipelines

I'm using Gitlab, I suppose these pipelines are similar. (Gitlab use Docker for Continuous Integration part, for Continuos Delivery, I don't start reading something refer to that).

I'm start reading this guide -> https://www.stevejgordon.co.uk/docker-dotnet-developers-part-1
I will end the next week, I hope it could help me.

My "Infraestructure" level it is low.
thanks again @goforgold for your answers!

@JonathanLoscalzo

That project is in development and deployed to AWS Free Tier for now. We only get charged for Bitbucket pipeline which has never exceeded $10 until now. You get 500 build minutes after 50 free build minutes in $10 per month.

Yes, the approach is very similar, I've set up CICD for a few projects before using Gitlab.

I'm using Gitlab, I suppose these pipelines are similar. (Gitlab use Docker for Continuous Integration part, for Continuos Delivery, I don't start reading something refer to that).

Thanks for sharing this resource, I will go through this series too.

I'm start reading this guide -> https://www.stevejgordon.co.uk/docker-dotnet-developers-part-1
I will end the next week, I hope it could help me.

Moved everything to .net core 2 preview 2 on UAT now. Let's see how we go:)

@goforgold

That project is in development and deployed to AWS Free Tier for now.
Cool! I will try this approach, Although I have little knowledge in amazon.

If could you share something about CICD from gitlab-netcore (an article, o something like that), I Will Appreciate.

Thanks for all!

Any Dev use Google Cloud Platform for Deployment ???

https://codelabs.developers.google.com/codelabs/cloud-app-engine-aspnetcore/#0

Unknown whether this is the right place to ask this.

Suppose that I have an application that runs on .NET 4.5 (Desktop). I wish to move to .NET Core 2.0
As I convert my app, I find that most of the code ports over, pretty much without change. Then I run into some assemblies that do not exist in .NET Core 2.0, and are not being planned.

Can typeforwarding help me?

As an example: Suppose I had an assembly called Collector that works fine under .NET 4.5. When I port it to .NET Core 2,0, I find that Collector needs support for WMI, since it uses System.Management under .NET 4.5. And cannot work as is with anysimple porting efforts.

If I intend to run Collector on Windows only, but under .NET Core 2.0, will the following work:

Split Collector into a new Collector and adding Legacy Collector, New Collector running .NET Core 2.0, and Legacy Collector running .NET 4.5 but supplying the WMI instrumentation.

Then, in the new collector, I typeforward the class(es) I need to the legacy collector.

Will that work, or I cannot expect to move to .NET Core 2.0?

Unknown whether this is the right place to ask this.

It isn't. This is more of a .NET Core question (github.com/dotnet/corefx).

If I intend to run Collector on Windows only, but under .NET Core 2.0, will the following work:
Split Collector into a new Collector and adding Legacy Collector, New Collector running .NET COre 2.0, and Legacy Collector running .NET 4.5 but supplying the WMI instrumentation.
Then, in the new collector, I typeforward the class(es) I need to legacy collector.
Will that work, or I cannot expect to move to .NET Core 2.0?

Can you be more specific about what split means? Do you mean different assemblies? What are the names of those assemblies? What exactly are you trying to type forward? All of WMI? or Just the subset required for your collector to work?

The basic idea is this. If you need an assembly that doesn't exist on .NET Core, you can shim it. Of course it's basically the same as porting it but you need to have the exact same assembly and namespace name for it to work. You don't need to type forward, you just need to provide an assembly that has the right implementation.

I have an assembly today that runs under .NET 4.5 on a Windows machine.

It is called Collector.dll

I want to run it under .NET 2.0 Core.

Collector.dll has a couple of classes that require WMI, and currently System.Management (not available under .NET Core 2.0) supplied that functionality.

Is it possible to split Collector.dll into two assemblies: a new Collector.dll that only needs .NET Core 2.0 libraries, and a new piece (Say CollectorWMI.dll) that still works under .NET 4.5 and has the aforementioned classes, and then have typeforwarding for just those classes reliant on WMI from the new Collector.dll to CollectorWMI.dll.

The intent is to run as much of Collector.dll clients on multiple platforms, but not lose the existing functionality on Windows. And have as much code in .NET Core 2.0 as possible?

Thanks David, I'll ask at corefx. I asked here because the assembly I was referring to is under a ASP.NET project where I work.

Sorry to have posted this, here.

What assembly are you referring to?

This issue is being closed because it has not been updated in 3 months.

We apologize if this causes any inconvenience. We ask that if you are still encountering this issue, please log a new issue with updated information and we will investigate.

Was this page helpful?
0 / 5 - 0 ratings