How to separate web client project and web API project? - visual-studio

I am developing a SPA application on ASP.NET 5 and I wanted to go one step further and separate the client (js, html, etc.) and the web api projects so that there is clear distinction between client and the server. Apparently there are number of technical issues that complicate things:
How can I include the js/html/etc. files in the resulting published project? (Ideally I want to be able to edit js/html and see the result in the browser on the fly). There is on way that I found to have a linked folder.
I want to share some of the javascript files even further e.g. angular services in Cordova js projects
There is very nice feature in mvc6 with environments that is not easily done in js project and I would have to still use some Index.cshtml to use it, but this is not critical though since I can use gulp to do similar stuff
How will the js know the URL of the api (this can probably be just done using gulp as well in some script with configuration)
I am not 100% sure this is a good idea at all, but maybe someone has tried it and can share experience and pros/cons of this approach. For now the most important problem seem to be of including the client project into the service project somehow so that they are joined into one web application that I can deploy in a way that does not make development harder.

Related

Can sites built with Rapidweaver be worked on without Rapidweaver?

A friend has asked me to do some work on his existing site which was built in Rapidweaver. I'm on Windows, so is there another way I can access and edit his site?
The Rapidweaver project file is meant to be edited only in Rapidweaver, really. As far as I know, the only way around would be to use an HTML editor to modify the pages that are already in the server. However, I would not reccomend you to do it unless you are not going back to Rapidweaver anymore. Because changing the files in the server does not update your local Rapidweaver files. So, you could end up editing something in the server, then getting back to Rapidweaver and upload a "new" version that would not be completely up to date (the previous changes in the server version would be overriden by the older rapidweaver project).
For that kind of work, a CMS (Content Management System) is a more flexible way to work. Nowadays, one of the most common is Wordpress. It will require an inicial setup but after it is working it can be updated from anywhere via web browser, or even from an app in your iPhone. But it is not a Rapidweaver based sollution.
There are a couple CMS related plugins or stacks (Dropkick CMS, Armadillo, Easy CMS, Total CMS...) for Rapidweaver that could also be useful in this context. Once again, first you would need to buy a licence and to setup the website using one of those plugins or stacks. Only then you would be able to edit on the go.

How to achieve Incremental deployment of Sitefinity Code Files to different environments of windows azure?

We are new to Windows azure and are developing a Sitefinity web application. In the beginning of the project , we have deployed complete code using Sitefinity Thunder to different environments which actually publish complete code. But now as we are in the middle of development , we are just required to upload any new files created which can be quite less in numbers (1 or 2 or maybe few). Now if we deploy with thunder , it publishes all files and then deploys complete code which takes good amount of time. Is there a way we can deploy only changed or new code files via sitefinity thunder or is there any other way with which we can only upload only the changed files?
Please help.
I use Beyond Compare 3 from scooter software to move files to our different Sitefinity environments. I haven't used Sitefinity Thunder to deploy my sites before. Also, you might want to post your question on the Sitefinity Devs group on Google+. Below is the link.
https://plus.google.com/communities/101682685148530961591
This is not easy to do and Azure is not designed for this although many people have requested this feature. The one way to achieve it is to enable Remote Desktop for the cloud service and then by logging onto the server, you can then make some kind of connection to where your files are stored and copy them into the cloud service. However, it is always possible that the instance will be rebooted and even re-provisioned from fresh so I don't know if there are any guarantees that this is a safe way to do it.

Sharing AppSettings and ConnectionStrings between a console and a web app

I have a multi-tiered ASP.Net MVC 3 application in which different layers need to share some settings, and I am wondering how to best achieve this.
For now, all my AppSettings are in the Web.config file, but I just added a new project to my solution to create a console application that will be called every night buy the Windows Task Scheduler to perform routine maintenance tasks. This console application will be using the same database, repository layer, service layer, etc. as the web application, and both applications should share the same settings for the most part. I would like to avoid duplicating the settings in two files (app.config and web.config).
Also, I want these settings to be available to the service layer, which is in a separate project in the same solution.
I have read the following post, but I don't fully understand the solution, and I am not sure it is the best way to do this.
Sharing Config settings between Web App and Console App
I also read the article linked to by that post, and I don't find the solution very elegant.
I am using VS 2010 and EF 4.3.1.
If you're simply interested in accessing the AppSettings of your web.config file from a console app, that's simple enough. The only real annoyance is that since your console app won't be running in a web context, you will have to know in advance what your site is called in IIS. This being your own application shouldn't be a challenge.
Just use System.Web.Configuration.WebConfigurationManager to open and access the web.config of the specified site.
The idea is that you could put the settings into a common .config shared between all your projects as a link instead of putting it in all projects. The solution is outlined in this answer. Also checkout the configSource property on MSDN if you are not aware about the possibility of externalizing configuration elements into a separate file.

Deploying Asp.net MVC web application

I have been trying to find a neat tutorial, guide or step by step instructions for deploying an Asp.net MVC3 webapp but have found nothing so far. Everyone talks about his version of the stroy and different type of MVC versions.
Right now, I have build a simple Asp.net MVC web application which i need to deploy on my shared hosting account. In a very simple manner, I need to know which files should i copy. Do i upload everything in my webproject directory to the server including the controller directory, views, models, content and bin directory ?. What about the Global.asax, web.config, packages.config, myapp.publish.xml.
In short, I have no idea which files should be uploaded and which should be not. I am sure of one thing that i need few(MVC and Razor dlls) following dlls in bin directory. Just treat me as someone who has never deployed any website
NOTE:- I don't have VS SP1 installed and it doesn't install either. Basically i need a manual procedure.
Here is a tutorial on the MSDN site about how to deploy an MVC application. Typically, hosts will also now have WebDeploy available, which is a very easy way to deploy and update your application without having to worry about what files to copy.

How can I manage a website with Xcode?

I'm starting a new web project, and I'm looking to learn more about Xcode at the same time, so I'm wondering if there's a good way to manage the project through Xcode?
In an ideal world, I would like the "Run" button to upload the final product files to the web server (or copy them to some local folder that is set to auto-sync using an FTP client) Then I would like it to launch safari (and a number of other test browsers) and have them open the home page.
Additional features that I think are possible:
Have local environment variables that are substituted by some kind of text find/replace action into HTML files as they are copied.
My advice is to stay away from XCode for Web development. While it can be done, it really isn't built for it and you will only make things much more difficult than it needs to be. If you really want to learn about XCode then use it for application development, not web development.
There are other IDEs out there specifically for web development that you might like. NetBeans, Coda, Expresso, etc. Personally, I enjoy using Expresso.

Resources