{"id":13432255,"url":"https://github.com/chsakell/aspnet5-angular2-typescript","last_synced_at":"2026-02-12T15:37:27.449Z","repository":{"id":90340817,"uuid":"48852087","full_name":"chsakell/aspnet5-angular2-typescript","owner":"chsakell","description":"Cross-platform Single Page Applications with ASP.NET Core, Angular 4 \u0026 TypeScript","archived":false,"fork":false,"pushed_at":"2019-03-25T17:22:58.000Z","size":11001,"stargazers_count":349,"open_issues_count":4,"forks_count":163,"subscribers_count":69,"default_branch":"master","last_synced_at":"2024-10-27T11:50:16.210Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"http://wp.me/p3mRWu-11L","language":"C#","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/chsakell.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null}},"created_at":"2015-12-31T14:34:19.000Z","updated_at":"2024-10-02T16:22:20.000Z","dependencies_parsed_at":"2024-01-05T21:03:35.517Z","dependency_job_id":null,"html_url":"https://github.com/chsakell/aspnet5-angular2-typescript","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chsakell%2Faspnet5-angular2-typescript","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chsakell%2Faspnet5-angular2-typescript/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chsakell%2Faspnet5-angular2-typescript/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chsakell%2Faspnet5-angular2-typescript/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/chsakell","download_url":"https://codeload.github.com/chsakell/aspnet5-angular2-typescript/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243949865,"owners_count":20373653,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-07-31T02:01:09.769Z","updated_at":"2026-02-12T15:37:27.430Z","avatar_url":"https://github.com/chsakell.png","language":"C#","readme":"# ASP.NET Core, Angular 4 \u0026 TypeScript\n[![Build status](https://ci.appveyor.com/api/projects/status/github/chsakell/aspnet5-angular2-typescript?branch=master\u0026svg=true)](https://ci.appveyor.com/project/chsakell/aspnet5-angular2-typescript/branch/master) [![License](https://img.shields.io/github/license/chsakell/aspnet5-angular2-typescript.svg)](https://github.com/chsakell/aspnet5-angular2-typescript/blob/master/licence)\n\nBlog post:\u003ca href=\"http://wp.me/p3mRWu-11L\" target=\"_blank\"\u003eCross-platform Single Page Applications using ASP.NET Core, Angular 2 and Typescript\u003c/a\u003e \u003cbr/\u003e\u003cbr/\u003e\n\u003ca href=\"http://wp.me/p3mRWu-11L\" rel=\"attachment wp-att-3961\" target=\"_blank\"\u003e\u003cimg src=\"https://chsakell.files.wordpress.com/2016/05/aspcorerc2.png?w=700\u0026amp;h=355\" alt=\"aspnet5-agnular2-03\" width=\"700\" height=\"355\" class=\"alignnone size-full wp-image-3961\"\u003e\u003c/a\u003e\n\n\u003ch3\u003eFrameworks - Tools - Libraries\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eASP.NET Core\u003c/li\u003e\n\u003cli\u003eEntity Framework Core\u003c/li\u003e\n\u003cli\u003eAutomapper\u003c/li\u003e\n\u003cli\u003eAngular 4\u003c/li\u003e\n\u003cli\u003eTypescript\u003c/li\u003e\n\u003cli\u003eBootstrap 3\u003c/li\u003e\n\u003cli\u003eGulp\u003c/li\u003e\n\u003cli\u003eBower\u003c/li\u003e\n\u003c/ul\u003e\n\n\u003ch3\u003eInstallation instructions - Part 1 (Applied for Windows/Linux/MAC)\u003c/h3\u003e\n\u003col\u003e\n\u003cli\u003eInstall ASP.NET Core according to your development environment from \u003ca href=\"https://www.microsoft.com/net/core\" target=\"_blank\"\u003ehere\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eInstall \u003cstrong\u003eNPM\u003c/strong\u003e by installing \u003ca href=\"https://nodejs.org/en/\" target=\"_blank\"\u003eNode.js\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eInstall Bower, Gulp, Typescript and Typescript Definition Manager globally by typing the following commands on the console/terminal:\n\u003cul\u003e\n\u003cli\u003enpm install -g bower\u003c/li\u003e\n\u003cli\u003enpm install -g gulp\u003c/li\u003e\n\u003cli\u003enpm install -g typescript\u003c/li\u003e\n\u003cli\u003enpm install -g tsd\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\n\u003ch3\u003eInstallation instructions - Part 2 (Run application in Visual Studio 2017, only for Windows users)\u003c/h3\u003e\n\u003col\u003e\n\u003cli\u003eDownload and install Visual Studio 2017 from \u003ca href=\"https://www.visualstudio.com/en-us/downloads/download-visual-studio-vs.aspx\" target=\"_blank\"\u003ehere\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eOpen Visual Studio 2017 and install any update related to ASP.NET Core (check the notifications).\u003c/li\u003e\n\u003cli\u003eDownload the source code and open the solution.\u003c/li\u003e\n\u003cli\u003eBy the time you open the solution, VS 2017 will try to restore Nuget, NPM and Bower packages.\u003c/li\u003e\n\u003cli\u003eIn case it fails to restore NPM and Bower packages, open a console and navigate at the src/PhotoGallery path where the \u003ci\u003epackage.json\u003c/i\u003e and \u003ci\u003ebower.json\u003c/i\u003e files exist. Run the following commands:\n\u003cul\u003e\n\u003cli\u003enpm install\u003c/li\u003e\n\u003cli\u003ebower install\u003c/li\u003e\n\u003cli\u003egulp build-spa\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eOpen \u003cstrong\u003eappsettings.json\u003c/strong\u003e file and alter the database connection string to reflect your SQL Server environment.\u003c/li\u003e\n\u003cli\u003eOpen a console and navigate to src/PhotoGallery where the project.json exists. Run the following commands to enable migrations and create the database:\n\u003col\u003e\n\u003cli\u003edotnet ef migrations add initial\u003c/li\u003e\n\u003cli\u003edotnet ef database update\u003c/li\u003e\n\u003c/ol\u003e\n\u003c/li\u003e\n\u003cli\u003eBuild your application and run it. You can use \u003ci\u003eusername:\u003c/i\u003e \u003cstrong\u003echsakell\u003c/strong\u003e and \u003ci\u003epassword:\u003c/i\u003e \u003cstrong\u003ephotogallery\u003c/strong\u003e to sign in or register a new user.\u003c/li\u003e\n\u003c/ol\u003e\n\n\u003ch3\u003eInstallation instructions - Part 2 (Run application in Visual Studio Code, recommended for Linux/MAC users)\u003c/h3\u003e\n\u003col\u003e\n\u003cli\u003eDownload and install Visual Studio Code from \u003ca href=\"https://www.visualstudio.com/en-us/downloads/download-visual-studio-vs.aspx\" target=\"_blank\"\u003ehere\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eInstall the csharp extension from \u003ca href=\"https://code.visualstudio.com/Docs/languages/csharp\" target=\"_blank\"\u003ehere\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDownload the source code and open the src/PhotoGallery folder in Visual Studio Code.\u003c/li\u003e\n\u003cli\u003eOpen a console/terminal and navigate at the src/PhotoGallery path where the \u003ci\u003epackage.json\u003c/i\u003e and \u003ci\u003ebower.json\u003c/i\u003e files exist. Run the following commands:\n\u003cul\u003e\n\u003cli\u003enpm install\u003c/li\u003e\n\u003cli\u003ebower install\u003c/li\u003e\n\u003cli\u003egulp build-spa\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eRun the following command to restore Nuget Packages (dependencies)\n\u003cul\u003e\n\u003cli\u003edotnet restore\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eApplication uses SQL Server so in case you want to run the app in Linux or MAC simply set \u003cb\u003e\"InMemoryProvider\": true\u003c/b\u003e in \u003ci\u003eappsettings.json\u003c/i\u003e and skip to the last 3 steps to run the app.\u003c/li\u003e\n\u003cli\u003eOpen \u003cstrong\u003eappsettings.json\u003c/strong\u003e file and alter the database connection string to reflect your SQL Server environment.\u003c/li\u003e\n\u003cli\u003eOpen a console/terminal and navigate to src/PhotoGallery where the project.json exists. Run the following commands to enable migrations and create the database:\n\u003col\u003e\n\u003cli\u003edotnet ef migrations add initial\u003c/li\u003e\n\u003cli\u003edotnet ef database update\u003c/li\u003e\n\u003c/ol\u003e\n\u003c/li\u003e\n\u003cli\u003eHost your application using \u003cstrong\u003eKestrel\u003c/strong\u003e by typing the following command while at src/PhotoGallery:\n\u003cul\u003e\n\u003cli\u003edotnet run\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eOpen a browser and navigate to http://localhost:5000/\u003c/li\u003e\n\u003cli\u003eYou can use \u003ci\u003eusername:\u003c/i\u003e \u003cstrong\u003echsakell\u003c/strong\u003e and \u003ci\u003epassword:\u003c/i\u003e \u003cstrong\u003ephotogallery\u003c/strong\u003e to sign in or register a new user.\u003c/li\u003e\n\u003c/ol\u003e\n\u003ch2\u003eMicrosoft Azure Deployment\u003c/h2\u003e\nLearn how to deploy the PhotoGallery app on Microsoft Azure \u003ca href=\"http://wp.me/p3mRWu-1bi\" target=\"_blank\"\u003ehere\u003c/a\u003e.\n\u003ch2\u003eDonations\u003c/h2\u003e\nFor being part of open source projects and documenting my work here and on \u003ca href=\"https://chsakell.com\"\u003echsakell's blog\u003c/a\u003e I really do not charge anything. I try to avoid any type of ads also.\n\nIf you think that any information you obtained here is worth of some money and are willing to pay for it, feel free to send any amount through paypal.\n\n\u003ctable\u003e\n\u003ctr\u003e\u003cth\u003ePaypal\u003c/th\u003e\u003c/tr\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://www.paypal.com/cgi-bin/webscr?cmd=_donations\u0026business=chsakell%40gmail%2ecom\u0026lc=US\u0026item_name=Donation%20for%20chsakell%27s%20blog\u0026currency_code=USD\u0026bn=PP%2dDonationsBF%3abtn_donateCC_LG%2egif%3aNonHosted\" style=\"text-align:center;display:block\"\u003e\n\u003cimg src=\"https://www.paypalobjects.com/webstatic/en_US/btn/btn_donate_cc_147x47.png\" alt=\"Buy me a beer\" /\u003e\n\u003c/a\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\n\u003ch3 style=\"font-weight:normal;\"\u003eFollow chsakell's Blog\u003c/h3\u003e\n\u003ctable id=\"gradient-style\" style=\"box-shadow:3px -2px 10px #1F394C;font-size:12px;margin:15px;width:290px;text-align:left;border-collapse:collapse;\" summary=\"\"\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth style=\"width:130px;font-size:13px;font-weight:bold;padding:8px;background:#1F1F1F repeat-x;border-top:2px solid #d3ddff;border-bottom:1px solid #fff;color:#E0E0E0;\" align=\"center\" scope=\"col\"\u003eFacebook\u003c/th\u003e\n\u003cth style=\"font-size:13px;font-weight:bold;padding:8px;background:#1F1F1F repeat-x;border-top:2px solid #d3ddff;border-bottom:1px solid #fff;color:#E0E0E0;\" align=\"center\" scope=\"col\"\u003eTwitter\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctfoot\u003e\n\u003ctr\u003e\n\u003ctd colspan=\"4\" style=\"text-align:center;\"\u003eMicrosoft Web Application Development\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tfoot\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd style=\"padding:8px;border-bottom:1px solid #fff;color:#FFA500;border-top:1px solid #fff;background:#1F394C repeat-x;\"\u003e\n\u003ca href=\"https://www.facebook.com/chsakells.blog\" target=\"_blank\"\u003e\u003cimg src=\"https://chsakell.files.wordpress.com/2015/08/facebook.png?w=120\u0026amp;h=120\u0026amp;crop=1\" alt=\"facebook\" width=\"120\" height=\"120\" class=\"alignnone size-opti-archive wp-image-3578\"\u003e\u003c/a\u003e\n\u003c/td\u003e\n\u003ctd style=\"padding:8px;border-bottom:1px solid #fff;color:#FFA500;border-top:1px solid #fff;background:#1F394C repeat-x;\"\u003e\n\u003ca href=\"https://twitter.com/chsakellsBlog\" target=\"_blank\"\u003e\u003cimg src=\"https://chsakell.files.wordpress.com/2015/08/twitter-small.png?w=120\u0026amp;h=120\u0026amp;crop=1\" alt=\"twitter-small\" width=\"120\" height=\"120\" class=\"alignnone size-opti-archive wp-image-3583\"\u003e\u003c/a\u003e\n\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch2\u003eLicense\u003c/h2\u003e\nCode released under the \u003ca href=\"https://github.com/chsakell/aspnet5-angular2-typescript/blob/master/licence\" target=\"_blank\"\u003e MIT license\u003c/a\u003e.\n","funding_links":["https://www.paypal.com/cgi-bin/webscr?cmd=_donations\u0026business=chsakell%40gmail%2ecom\u0026lc=US\u0026item_name=Donation%20for%20chsakell%27s%20blog\u0026currency_code=USD\u0026bn=PP%2dDonationsBF%3abtn_donateCC_LG%2egif%3aNonHosted"],"categories":["Sample Projects","例子","TypeScript 教程"],"sub_categories":["Workflow","工作流","英文资源"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fchsakell%2Faspnet5-angular2-typescript","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fchsakell%2Faspnet5-angular2-typescript","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fchsakell%2Faspnet5-angular2-typescript/lists"}