[{"data":1,"prerenderedAt":466},["ShallowReactive",2],{"article-source-control-options-git-and-team-foundation-server-tfs":3},{"article":4,"tags":161,"previous":215,"next":362},{"id":5,"title":6,"author":7,"body":8,"createdAt":147,"description":148,"extension":149,"img":7,"meta":150,"navigation":151,"path":152,"seo":153,"stem":154,"tags":155,"updatedAt":147,"__hash__":160},"articles\u002Farticles\u002Fsource-control-options-git-and-team-foundation-server-tfs.md","Source Control Options GIT and Team Foundation Server (TFS)",null,{"type":9,"value":10,"toc":140},"minimark",[11,16,33,37,60,63,70,80,95,99,106,109,119,129,132],[12,13,15],"h3",{"id":14},"git-is-a-distributed-version-control-system","Git is a Distributed Version Control System",[17,18,19,27],"ul",{},[20,21,22,26],"li",{},[23,24,25],"strong",{},"Each developer"," has the entire repository, including the entire change history on his\u002Fher local machine",[20,28,29,32],{},[23,30,31],{},"The developer"," can see changeset history offline or commit (check-in) changes offline to his local repository",[34,35,36],"p",{},"Since the entire repository is local, we do everything locally. This includes, but not limited to:",[17,38,39,42,45,48,51,54,57],{},[20,40,41],{},"Committing changes (Check-in)",[20,43,44],{},"Viewing commit history",[20,46,47],{},"Creating a new branch",[20,49,50],{},"Merging branches",[20,52,53],{},"Moving to a different branch",[20,55,56],{},"Deleting branches",[20,58,59],{},"Reverting older commits",[34,61,62],{},"Yes we do have to Check-in or 'Push' our changes to the remote repository.",[34,64,65,66,69],{},"'Check-in' within Git is divided into ",[23,67,68],{},"2 parts",":",[34,71,72,75,76,79],{},[23,73,74],{},"Commit"," and **Push\n",[23,77,78],{},"Developers can now commit locally","whatever they want – Ugly code, comments, and work in progress. The other developers won’t get those changes as the commit is performed entirely local on their respective PC. When the code is ready for the team, they can Push the code changes to the remote repository.  This workflow gives the developer addition management of changes and when\u002Fhow things are pushed into the central repository for team consumption.",[34,81,82,83,86,87,90,91,94],{},"The ",[23,84,85],{},"Staging","concept …. this is like ",[23,88,89],{},"Included","\u002F",[23,92,93],{},"Excluded","changes in TFS. Only staged files will be committed. Again, why? (well say locally modified configuration files can stay out of source control)",[12,96,98],{"id":97},"branches-and-merges","Branches and Merges",[34,100,101,102,105],{},"In TFS\u002FTFSVC, ",[23,103,104],{},"Branch","will create a new directory with a copy of all files and directories of the parent Branch. For a developer to work on that new branch, they will have to copy that directory to his hard disk, essentially having another folder with the source code.",[34,107,108],{},"With Git, each branch is not a copy of the files from the parent branch. Instead, it’s simply a pointer to the Commit in the parent Branch from where we created our new branch.  With Git when working on a different branch, we tell Git “Move to another branch” (Checkout command) and Git will change our working area to match the desired branch. Again, there is a performance benefit as this entire action is performed locally.  Git already contains all the branches on the local machine.",[34,110,111,114,115,118],{},[23,112,113],{},"Merging"," is a lightweight operation. We can merge any branch to any branch. We can merge the entire difference or a specific Commit. Git will find the “Base” Commit where the branches split and allow us to resolve conflicts (This is the same as in TFS)",[116,117],"br",{},"\nA good practice with Git is to create a new branch to work on a big feature. Eventually, merging that branch to the master branch and discarding the new branch entirely.",[34,120,121],{},[122,123,128],"a",{"href":124,"target":125,"rel":126},"https:\u002F\u002Fgit-scm.com\u002Fbook\u002Fen\u002Fv2\u002FGit-Branching-Branches-in-a-Nutshell","_blank",[127],"noopener","Reference\u002FTutorial on GIT branching",[34,130,131],{},"TFS\u002FTFVC is Centralized Version Control System",[17,133,134,137],{},[20,135,136],{},"the developer has a copy of the repository file system on his machine",[20,138,139],{},"offline actions like commits (check-ins)  and seeing history are impossible since the local repository can’t save “changes”",{"title":141,"searchDepth":142,"depth":142,"links":143},"",2,[144,146],{"id":14,"depth":145,"text":15},3,{"id":97,"depth":145,"text":98},"2020-01-21","Git has been gaining momentum lately and continues to be the path forward for all organizations (including Microsoft) as the source control of record.  What are the differences, benefits...read more...","md",{},true,"\u002Farticles\u002Fsource-control-options-git-and-team-foundation-server-tfs",{"title":6,"description":148},"articles\u002Fsource-control-options-git-and-team-foundation-server-tfs",[156,157,158,159],"sourcecontrol","teamfoundationserver","visualstudio","git","z27ZBLeINXv4DaOx5aV-Ihtuz5pCxHT3joVG2EXl5Z0",[162,176,189,202],{"id":163,"title":164,"body":165,"description":169,"extension":149,"img":170,"meta":171,"name":159,"navigation":151,"path":172,"seo":173,"stem":174,"__hash__":175},"tags\u002Ftags\u002Fgit.md","Git",{"type":9,"value":166,"toc":167},[],{"title":141,"searchDepth":142,"depth":142,"links":168},[],"By far, the most widely used modern version control system in the world today is Git. Git is a mature, actively maintained open source project originally developed in 2005 by Linus Torvalds, the famous creator of the Linux operating system kernel.","https:\u002F\u002Fimages.unsplash.com\u002Fphoto-1598313183973-4effcded8d5e?ixlib=rb-1.2.1&ixid=eyJhcHBfaWQiOjEyMDd9&auto=format&fit=crop&w=675&q=80",{},"\u002Ftags\u002Fgit",{"description":169},"tags\u002Fgit","U1tw1upYV8fS54zcAcO9NtXP-eTFSmtnUnkUMo_QBY0",{"id":177,"title":178,"body":179,"description":183,"extension":149,"img":170,"meta":184,"name":156,"navigation":151,"path":185,"seo":186,"stem":187,"__hash__":188},"tags\u002Ftags\u002Fsourcecontrol.md","Sourcecontrol",{"type":9,"value":180,"toc":181},[],{"title":141,"searchDepth":142,"depth":142,"links":182},[],"Source control refers to tracking and managing changes to code. This ensures that developers are always working on the right version of source code.",{},"\u002Ftags\u002Fsourcecontrol",{"description":183},"tags\u002Fsourcecontrol","txFWQUvKfmOZSUyYKCc7uSDzQBPUHuUci03EOyNYfK8",{"id":190,"title":191,"body":192,"description":196,"extension":149,"img":170,"meta":197,"name":157,"navigation":151,"path":198,"seo":199,"stem":200,"__hash__":201},"tags\u002Ftags\u002Fteamfoundationserver.md","Teamfoundationserver",{"type":9,"value":193,"toc":194},[],{"title":141,"searchDepth":142,"depth":142,"links":195},[],"Team Foundation Server (often abbreviated to TFS) is a Microsoft product that provides tools and technologies designed to help teams collaborate and orchestrate their efforts to finish projects or create a product. It enables DevOps capabilities covering the entire application lifecycle",{},"\u002Ftags\u002Fteamfoundationserver",{"description":196},"tags\u002Fteamfoundationserver","CEZSgtqpsn_JuGubePK9lUUC42p0YpLGI5j3KuMwrSY",{"id":203,"title":204,"body":205,"description":209,"extension":149,"img":170,"meta":210,"name":158,"navigation":151,"path":211,"seo":212,"stem":213,"__hash__":214},"tags\u002Ftags\u002Fvisualstudio.md","Visualstudio",{"type":9,"value":206,"toc":207},[],{"title":141,"searchDepth":142,"depth":142,"links":208},[],"Develop apps for Android, iOS, Mac, Windows, web, and cloud",{},"\u002Ftags\u002Fvisualstudio",{"description":209},"tags\u002Fvisualstudio","glm3bYyBlAXGun4NJe-CV_iOzhszydeBRIpbGNNLeEk",{"id":216,"title":217,"author":7,"body":218,"createdAt":351,"description":352,"extension":149,"img":290,"meta":353,"navigation":151,"path":354,"seo":355,"stem":356,"tags":357,"updatedAt":351,"__hash__":361},"articles\u002Farticles\u002Fancm-in-process-start-failure-shenanigans.md","ANCM InProcess Start Failure Shenanigans",{"type":9,"value":219,"toc":349},[220,228,251,258,267,270,275,277,293,296,329,332,335,345],[34,221,222,223,227],{},"If you are using .NET Core and have not received the following error\u002Fexception message I will send you $1.00.  Let me know!  ",[224,225,226],"b",{},"HTTP Error 500.30 - ANCM In-Process Start Failure","\nCommon solutions to this issue:",[17,229,230,233,236,242,245,248],{},[20,231,232],{},"The application failed to start",[20,234,235],{},"The application started but then stopped",[20,237,238,239],{},"The application started but threw an exception during startup   ",[224,240,241],{},"Troubleshooting steps:",[20,243,244],{},"Check the system event log for error messages",[20,246,247],{},"Enable logging the application process' stdout messages",[20,249,250],{},"Attach a debugger to the application process and inspect",[34,252,253,254,257],{},"I have ran into this plenty of times already.  There are many reasons but at it’s root dotnet is not able to start up for one of many reasons.  As I run into my issues I will update this post with them.  So far, with ASP.NET Core 3.1.1  1. The IIS Application Pool – Advanced Settings “Enable 32-Bit Applications” – ",[23,255,256],{},"setting to False fixed my issue ","(this site was deployed to an on-premise IIS Server)  2. Azure installation – It was more difficult to identify the source of the issue as I was not working directly with IIS (Internet Information Server).  I first tried logging via App Service Logs,  and view the streaming logs which led me to error message similar to..",[34,259,260,266],{},[261,262,263,264],"em",{},"”IIS received the request; however, an internal error occurred during the processing of the request. The root cause of this error depends on which module handles the request and what was happening in the worker process when this error occurred.\u003C\u002Fli>     \u003Cli>IIS was not able to access the web.config file for the Web site or application. This can occur if the NTFS permissions are set incorrectly.”",[116,265],{},"\nI then worked towards running the web application from command line to hope it gave me more information.\ni.e. Diagnostic Console – Debug Console then running the web assembly via “dotnet web.dll” (in this case my application was called Web). ",[34,268,269],{},"This gave me a much better startup.cs issue. I had good sense to recognize the issue\u002Fexception was within my startup class. \nI had my first real clue from the following message…",[34,271,272],{},[261,273,274],{},"”Unhandled exception. System.IO.DirectoryNotFoundException: D:\\home\\site\\wwwroot\\Scripts\\ at Microsoft.Extensions.FileProviders.PhysicalFileProvider..ctor(String root, ExclusionFilters filters) at\nMicrosoft.Extensions.FileProviders.PhysicalFileProvider..ctor(String root) at Web.Startup.Configure(IApplicationBuilder app, IWebHostEnvironment env, IServiceProvider serviceProvider, LinkGenerator lin”",[261,276],{},[34,278,279],{},[261,280,281],{},[122,282,284],{"href":283},"\u002Farticles\u002Fimages\u002Fimage_637160171567190817.png",[285,286],"img",{"title":287,"style":288,"border":289,"alt":287,"src":290,"width":291,"height":292},"image","border: 0px currentcolor; border-image: none; display: inline; background-image: none;",0,"\u002Farticles\u002Fimages\u002Fimage_thumb_637160171568626232.png",722,343,[34,294,295],{},"I had used in prior 2.1 Core solution a scripts static directly which did not exist with this 3.1 solution.",[297,298,302],"pre",{"className":299,"code":300,"language":301,"meta":141,"style":141},"language-cs shiki shiki-themes github-light github-dark","app.UseStaticFiles(new StaticFileOptions   {    \nFileProvider = new PhysicalFileProvider\n(Path.Combine(Directory.GetCurrentDirectory(), \"Scripts\")),\nRequestPath = \"\u002FScripts\" });\n","cs",[303,304,305,313,318,323],"code",{"__ignoreMap":141},[306,307,310],"span",{"class":308,"line":309},"line",1,[306,311,312],{},"app.UseStaticFiles(new StaticFileOptions   {    \n",[306,314,315],{"class":308,"line":142},[306,316,317],{},"FileProvider = new PhysicalFileProvider\n",[306,319,320],{"class":308,"line":145},[306,321,322],{},"(Path.Combine(Directory.GetCurrentDirectory(), \"Scripts\")),\n",[306,324,326],{"class":308,"line":325},4,[306,327,328],{},"RequestPath = \"\u002FScripts\" });\n",[34,330,331],{},"Once I removed this reference to \u002FScripts things worked and I was up and running. ",[34,333,334],{},"So, just note that this ANCM error is pretty good indication that something is wrong with Startup.cs class and so you really will be looking for logs for some indication as to what.",[34,336,337],{},[122,338,340],{"href":339},"\u002Farticles\u002Fimages\u002Fimage_637160171569717383.png",[285,341],{"title":287,"style":288,"border":289,"alt":287,"src":342,"width":343,"height":344},"\u002Farticles\u002Fimages\u002Fimage_thumb_637160171570874206.png",534,256,[346,347,348],"style",{},"html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"title":141,"searchDepth":142,"depth":142,"links":350},[],"2020-01-30T21:39:17.213Z","Common issue with .net core solutions when you deploy to a server and get ANCM In-Process failures",{},"\u002Farticles\u002Fancm-in-process-start-failure-shenanigans",{"title":217,"description":352},"articles\u002Fancm-in-process-start-failure-shenanigans",[358,359,360],"azure","aspnet","netcore","uO_1neDf1NscBqxD75q-Jvy9EuQmMV849La98mkWnks",{"id":363,"title":364,"author":7,"body":365,"createdAt":455,"description":456,"extension":149,"img":457,"meta":458,"navigation":151,"path":459,"seo":460,"stem":461,"tags":462,"updatedAt":455,"__hash__":465},"articles\u002Farticles\u002Fnpm-dependencies-vs-devdependencies.md","NPM - dependencies vs devDependencies",{"type":9,"value":366,"toc":453},[367,370,373,382,385,409,418,445],[34,368,369],{},"Technically, when using a bundler like webpack, the result will not make a difference with regard to the output of your bundling process.",[34,371,372],{},"That being said, dividing the packages in dependencies and devDependencies still helps you (and others looking at your package.json) to understand which packages are meant to end up being a part of the bundle created (dependencies), and which are needed to build the bundle only (devDependencies).",[34,374,375,376,378,379,381],{},"Just remember main principle:",[116,377],{},"\n-> If you need package in production put it into dependencies (most likely axios should be in dependencies in your case).",[116,380],{},"\n-> If you need package only during development, put it into devDependencies (e.g. unit-test libraries, which isn't needed in productions should be in devDependencies",[34,383,384],{},"Summary of important behavior differences:",[34,386,387,393,394,396,399,400,403,405,408],{},[122,388,390],{"href":389},"https:\u002F\u002Fgithub.com\u002Fnpm\u002Fnpm\u002Fblob\u002F2e3776bf5676bc24fec6239a3420f377fe98acde\u002Fdoc\u002Ffiles\u002Fpackage.json.md#dependencies",[303,391,392],{},"dependencies"," are installed on both:",[116,395],{},[303,397,398],{},"npm install"," from a directory that contains ",[303,401,402],{},"package.json",[116,404],{},[303,406,407],{},"npm install $package"," on any other directory",[34,410,411,417],{},[122,412,414],{"href":413},"https:\u002F\u002Fgithub.com\u002Fnpm\u002Fnpm\u002Fblob\u002F2e3776bf5676bc24fec6239a3420f377fe98acde\u002Fdoc\u002Ffiles\u002Fpackage.json.md#devdependencies",[303,415,416],{},"devDependencies"," are:",[34,419,420,421,423,424,426,427,430,431,433,434,437,438,441,442,444],{},"also installed on ",[303,422,398],{}," on a directory that contains ",[303,425,402],{},", unless you pass the ",[303,428,429],{},"--production"," flag.",[116,432],{},"\nnot installed on ",[303,435,436],{},"npm install \"$package\""," on any other directory, unless you give it the ",[303,439,440],{},"--dev"," option.",[116,443],{},"\nare not installed transitively.",[34,446,447,448],{},"Reference: ",[122,449,452],{"href":450,"target":125,"rel":451},"https:\u002F\u002Fstackoverflow.com\u002Fquestions\u002F18875674\u002Fwhats-the-difference-between-dependencies-devdependencies-and-peerdependencies\u002F22004559#22004559",[127],"StackOverflow",{"title":141,"searchDepth":142,"depth":142,"links":454},[],"2020-01-07T14:02:12.046Z","Webpack is one of those technologies that has become increasingly important and yet struggles to be clear and obvious for most developers.  One of the best ways to get up to speed is to start from scratch (empty package.json) and build up one piece at a time to understand how it works.  Below are some notes about package.json and how dependencies are established.","\u002Farticles\u002Fimages\u002Fnpm.png",{},"\u002Farticles\u002Fnpm-dependencies-vs-devdependencies",{"title":364,"description":456},"articles\u002Fnpm-dependencies-vs-devdependencies",[463,464],"vuejs","npm","6JDIyAP2t28x6-aZhXKViT2l9gCy3dbGWKBsP3m-43Y",1781574763780]