Importing a classic asp site into TFS - tfs

How would i import a legacy website into Team Foundation Server (2015)?
A few websites are classic asp and some other websites are static websites and documents.
Within the collection admin there is an option to add files... but these are just listed in the code window with the existing folder structure no longer maintained....
I want to import an exact copy of the existing folder structure for each website.

Even though the import window shows a list of files, they will be imported with structure in tact.

Related

Updated ASP.NET Web Application (.NET Framework) MVC5 Project Template

The project that visual studio 2019 creates for an ASP.NET Web Application (.NET Framework) MVC5 comes with Bootstrap 3.x and many other outdated components. Not to mention unneeded things like modernizr.
If you update Bootstrap, you know need to modify the ScriptBundle in BundleConfig to get the application to start, and then modify the CSS to get the premade web pages to render properly.
Also, the folder structure is not the best.
Is there a project template out there that has all essential components updated, and a clean-up NuGet and folder structure?
I tried using Rider but they do not have a built-in template.
I went t the .Net Foundation GitHub and did not find any: https://github.com/dotnet?q=.NET+framework&type=&language=c%23&sort=
I also search GitHubub and did not see any: https://github.com/search?q=ASP.NET+Web+Application+%28.NET+Framework%29+project+template
I am looking for a project template that has the basic structure to create a Clean Architecture in .NET Framework and not .NET Core
I know it's legacy, but unfortunately, I need it for a university class (University courses take a while to get updated, and in this case, they claim that there are sufficient companies out there using ASP.NET MVC 5 to Merrit them teaching it) But yes, No one should be using this to start a new project they intend to put into a real-life production scenario.
Thank you

Override bootstrap in .net core 2.0 using less

In good old ASP.NET we would install Bootstrap as a NuGet package and it would install all the files in the ~/Content/bootstrap directory. This made it easy to create a custom bootstrap.less file that imported Bootstrap so that we could override what we wanted while still keeping the library intact so it could be updated at any time.
For example I could do this in my custom less file to enable a special bootswatch theme with some custom variables and overrides. I could then compile it and add it to the site css.
#import "bootstrap/bootstrap.less";
#import "bootstrap/_variables.less";
#import "bootstrap/_bootswatch.less";
#import "custom.less";
In dot net core 2.0 there is no ~/Content directory by default and css is really served from the new wwwrootdirectory. When installing Bootstrap through NuGet now, it is added as a "Dependency". I can't find a way to import the bootstrap less files as I used to though since I don't know the path, if there even is one.
I have created a custom ~/Styles/bootstrap.less file in which I try to use the imports above but the compiler can't find them. I have found the .less files in /packages/bootstrap.less.3.3.7/content/Content/bootstrap.less in my solution root but that does not seem to be accessible to the import-statements.
#import '../../packages/bootstrap.less.3.3.7/content/Content/bootstrap.less';
The error I get is simply:
FileError: '../../packages/bootstrap.less.3.3.7/content/Content/bootstrap.less' wasn't found.
Tried - [SOLUTIONPATH]\packages\bootstrap.less.3.3.7\content\Content\bootstrap.less,
....\packages\bootstrap.less.3.3.7\content\Content\bootstrap.less in \Styles_bootstrap.less
How can I override the bootstrap less files? Do I have to download bootstrap myself into my ~/Styles/ directory to be able to import them? That would ruin the possibility of updating through NuGet :/
.net core has stopped supporting Nugets for client side codes. Creating a new .net core project with either vs 2017 or using the cli dotnet new mvc would by default include the bower packages on the wwwroot/lib folder. To manage bower packages you can right click on the project and select "manage bower packages". Also note that .net core mvc by default is only configured to use the wwwroot folder as the client side content. Besides this, the compiled views are the only other content that are given to the client. This means that and Styles or Contents folder you create wouldn't be a client side code by default. You can add theses folders in the set up but its not recommended. The js and css files can be found in folders inside wwwroot.

Importing an UMBRACO site into Visual Studio

Is it possible to import an already existing Umbraco site into Visual Studio? (By means of getting all the site files and DB backup)
I've tried creating an empty project and copying the website files, but I get several errors when I try to compile the solution. The errors look like "Could not find scheme information for the element 'umbracoConfiguration'."
The same happens if I create an empty solution, add the UMBRACO nuget package, and then copy the website files.
I'm wondering if it is at all possible, or if once an UMBRACO website is running, how should one customize/develop on it?
THANK YOU!
After several attempts and trial and error, as well as reading other blogs, the way it worked for me was to go in Visual Studio -> File -> Open -> Web Site... and select the main folder containing all the files.
It is important to know that the web.config had to be modified in advanced for the website to work to point to the local server and off course attach the DB to the local SQL server.
Everything works perfectly just the way it was working on the host, and I have the solution in Visual Studio.
I like to start with nuget because it handles setting up all of my project references. I create a new MVC4 Web Application
Visual Studio->File->New->Project->MVC4 Web Application
After I create the new application, I open the Nuget Package Manager Console
Tools->NuGet Package Manager->Package Manager Console
I then enter the command:
Install-Package UmbracoCms.Core -Version 7.2.1
I find that installing the UmbracoCms.Core instead of the whole UmbracoCms nuget package is best because it only sets me up with the umbraco dlls and sets up the references for me. The UmbracoCms nuget package tries to do a lot more and is more handy if you are setting up a brand new umbraco site in Visual Studio.
Once I have nugetted the appropriate version of umbraco, I copy my existing umbraco site files over the files that were nugetted. When you copy all of the files over, don't copy all of the App_Data. Most of the files in that directory are TEMP files and cache files. From App_Data, only copy the following. This will save you time reindexing the site. I suspect a lot of the App_Data files were responsible for your Object Null Reference.
App_Data/access.config
App_Data/packages/*
In visual studio, in the solution explorer, click "Show All Files", and then include the appropriate files in the solution. Rebuild the solution, and you should be set up for development.

Can I create a Visual Studio project file from files on a server?

I have access to a working ASP.NET MVC 4 website through FTP but do not have the Visual Studio project file. Using these files can I create a Visual Studio project file?
If you have access to all the class files, views etc but are just missing the solution/project file then technically you can wrap them up in an empty project but it would still be a different project.
If you only have access to the published output (the views and JavaScript) then in short the answer is no, not without trying to reverse engineer the dll which I have heard is possible but have never tried myself.

Debugging a nuget of an entire web installed into an empty web app

We are in the middle of development for a core ASP.NET MVC web project and a customer plugin in the form of an MvcContrib plugin web project -- a web project injected into the core web as an area. The plugin is a soft reference in the core project, so it can be developed completely separately and dropped in.
I am trying to generate a way to debug/code the plugin, so that the multiple custom plugins can be developed independent of the core web.
The developers should only have to worry about coding and testing the plugin code. Also, I don't want them to change the core code in this custom plugin project -- that should be done in the core anyway.
I created the core web as a NuGet package and included all the necessary files so I could include it in a web.
My thinking was that I could create an empty web, install my core web, and the developers could have an F5-driven debugging environment.
I tested by creating a blank Mvc project, installed my core package and included one of my plugins. I changed the namespace of this empty web app to the namespace of the core web, thinking that Visual Studio debugging would properly attach and my core assembly.
Simple VS debugging in the empty app does not work -- I receive an HTTP Exception, most likely due to my routes not being registered. I also see that my log4net is not creating its logs folder, so I know the assembly's app start is not being called.
So I see that VS is not attaching to and calling my core assembly.
Can I use this empty web as a host project for my nuget installed web and debug? If so, what configuration am I missing?
If not, how can I include the core web in each customer plugin project in such a way that I can drop my DLL into the bin and debug it?
Using:
Visual Studio 2010
ASP.NET MVC2
The way we are doing things that works pretty well is to use a combination of Web Activator and Razor Generator (available as a Visual Studio extension). In order to access the views within the core web application, the consuming client application needs to know about them, either because they are all included as file references inside the Nuget package (messy) or because they are compiled into the core web dll. You can do that using Razor Generator. Once installed via Nuget you would need to change the Custom Tool property for each .cshtml file to RazorGenerator, which will create a .generated.cs file for each view. This will allow your sample client to use the layout and views from the core web application.
David Ebbo has some useful blog posts on Razor Generator
Couple that with Web Activator to create a PostActivationStartMethod that runs your initialisation code (such as initialising Log4Net) and you should be good to go. We've had this running in 2 scenarios - consuming the framework package via Nuget and adding a project reference directly. Debugging was not working for the Nuget package consuming route but we don't include the pdb files in the Nuget package. We can debug when adding a project reference directly though.

Resources