With Part II, we transferred the SQL Server data to Postgres.
In Part III, I create the ASP.Net MVC Core 2.x app, from which we will proceed, and get Entity Framework Core installed.
Then in Part IV, I look at the configuration differences between the ASP.Net MVC app that uses SQL Server and the new app, in preparation of porting the old app to use Postgresql.
Part V, we compared the differences in both the projects' structures and ported the existing project code, starting with the data model layer, to the new project. In addition to this, we got the jquery.countdown jquery plugin installed, that is used to implement a JavaScript timer. More on that in a later article. Finally, we used the dotnet ef dbcontext scaffold command that builds a DbContext and entity types for out Postgresql database. And, oh yes, we added the project to github, which frankly should have been done day one.
In Part VI, we got the NUnit testing framework in place in order to test both the new and future code.
Part VII, saw the Service layer setup along with its unit tests.
In Part VIII we imported the Controller classes from the existing app and setup unit tests for them.
Then in Part IX, we migrated the Razor (*.cshtml) files as well as the associated JavaScript, Cascading Style Sheet (CSS), and image files from the existing app.
Part X detailed the Program.cs and Startup.cs files as well as the appsettings.json and project files (*.csproj) content that was then migrated and updated from utilizing SQL Server to accessing Postgresql for data.
Now to deploy this new app to Heroku with Docker from Visual Studio Code on my Ubuntu 16.4 laptop.
First, you will need to download and install the Heroku CLI for your system. Go here for instructions. Then create a Heroku account.
Next, make sure you have Docker installed. Start here.
A quick thing to note is that I renamed my root folder from myApp to myapp as per this. In short, the repo name must be lowercase letters. After renaming it, the following commands to deploy the app worked.
Publish your App - pack the application and its dependencies into a folder for deployment to a hosting system - in this case: .bin/Release/netcoreapp2.0/publish by issuing the following from a command prompt:
$ dotnet publish -c Release
FROM microsoft/aspnetcore
WORKDIR /app
COPY . .
CMD ASPNETCORE_URLS=http://*:$PORT dotnet myapp.dll
$ docker build -t myapp.dll ./bin/Release/netcoreapp2.0/publish
In the directory of the new app I did the following:
$ heroku login
$ heroku container:login
$ docker tag myapp.dll:latest registry.heroku.com/newpostgresapp/web
Now to push the docker image to Heroku:
$ docker push registry.heroku.com/newpostgresapp
/web
Now, when browsing to the new app URL, it works!Fell free to create an account by selecting the Register link in the upper-right hand corner of the view. Also, let me know what you think.