Azure CDN with shared hosting server - asp.net

I have recently started using Azure CDN for a web app hosted on Azure under the "Standard" Service plan. CDn was working great and page loads dramatically decreased. For some reasons, I needed to shift the web app from Azure to a shared hosting provider and I notice that CDN is not helping much with the page speed as it used to do when the web app was hosted on Azure. Are there any changes that need to be made to make Azure CDN work with shared hosting provider?

Have you tried testing with a different CDN provider to see if you still experience the same slow speeds while using shared hosting? This could help further narrow down the issue of wether it is CDN or origin server related.
KeyCDN for example offers a variety of integration options that may be of interest.

We would need to know much more about the characteristics and examples of the performance decrease that you are seeing to be able to provide directed feedback. Overall the network paths between the CDN POPS and the Azure data centers are optimized so it is possible that by switching to an origin outside of Azure you are losing this optimization. This could be most noticeable if you have a lot of long tail content that requires the CDN to make frequent requests to your origin to fill CDN POP's caches. Once the content is cached on the CDN you shouldn't expect to see a difference in performance. You can use the load capability from the Azure Portal or CDN API's to instruct the CDN to load content on the CDN POP's prior to client requests to help isolate if this is an origin issue or not.

Load Rest API: https://msdn.microsoft.com/en-us/library/azure/mt634451.aspx
c# SDK for Load: https://github.com/Azure/azure-sdk-for-net/blob/AutoRest/src/ResourceManagement/Cdn/Microsoft.Azure.Management.Cdn/Generated/EndpointsOperations.cs#L1689
You can setup C# sdk using nuget

Related

Is Amplify Web Hosting making use of CloudFront CDN by default?

In other words, does amplify take care automatically to allocate your website static resources in edge locations? It does so many things for you that, at some point, it becomes hard to distinguish what it does and what not.
Yes, AWS Amplify uses CloudFront by default.
This is what they say on the website:
Q: How is hosting a modern web app different from a traditional web app?
Hosting a modern web app does not require web servers and can use content delivery networks to store static content (HTML, CSS and JavaScript files). AWS Amplify leverages the Amazon CloudFront Global Edge Network to distribute your web app globally .
You can learn more on https://aws.amazon.com/amplify/faqs/?nc1=h_ls .

ASP.NET Self Hosting or IIS hosting

I have an asp.net web api application should I use Self Hosting or should I host it on IIS. I am looking for better performance and security. Which one should I be using?
I just show the answer from here.
What I've found (basically just pros for IIS hosted):
You lose all of the features of IIS (logging, application pool scaling, >throttling/config of your site, etc.)...
You have to build every single feature that you want yourself HttpContext?
You lose that since ASP.NET provides that for you. So, I could see that making things like authentication much harder WebDeploy?
IIS has some nice specific features in 8 about handling requests and warming up the service (self-hosted does not)
IIS has the ability to run multiple concurrent sites with applications and virtual directories to advanced topics like load balancing and remote deployments.
And this
Self-hosting is good when you're not on a server -- for example, you want a desktop app to be able to listen for API requests.
But I think you would be able to achive am faster performing and more stable server if it is worth your time. But you need to be carefull not to make basic security mistakes like public accessable configuration files or ddos.

Is it possible to load all my javascripts dynamically using googlecode

My site using heavy javascripts. So can i upload them in google code and load them dynamically like loading jquery from google for speed?
Free hosting for web content is against the terms of service of Google Code and people have been banned for using it in this way.
12. Generic File Hosting: Google Project Hosting is meant for the facilitation of software development and the storage of artifacts related to software development. Storage of data that is not relevant to software development is not allowed without the express permission of Google.

how much of a challenge is it to port a asp.net application to azure?

I have a partly developed asp.net application, but now the client wants it to be developed in azure. How much of the existing code can be used in developing the application in azure.
What challenges could we possibly encounter when we try to port an existing asp.net application to azure? Are there any other alternatives to azure in cloud computing?
For an asp.net application, you can certainly port that to Azure. Your core logic will port in a relatively straightforward manner, and you'll gain the many benefits Azure has to offer. With the June 2010 release, you'll also have .NET 4 support, along with IntelliTrace for debugging.
However, as you begin to plan your Azure migration, there are several considerations you'll need to think about (none of them insurmountable, and several relatively simple to deal with):
You have to deal with ASP.NET Session State management across your web role instances (which isn't supported out of the box, except for inproc). You'll also have to set up and use the role and membership providers (see here for more detail). EDIT: You now have access to both AppFabric Cache for session state as well as SQL Azure, part of the Universal Providers included with the Windows Azure SDK+Tools.
You have to examine your SQL backend for incompatibilities with SQL Azure (such as scheduled jobs,since there's no SQL Agent support). SQL Azure differences are documented here. You'll also need to consider the SQL Azure size limit of 50GB, which might require you to offload content to Azure blob storage. EDIT: You can run your SQL Server database through the SQL Azure Migration Wizard for compatibility-testing.
You need to configure logging and diagnostics, preferably with Trace output, so that you can retrieve this data remotely.
You need to think about how you'll monitor and scale your application. All information you might need for scaling is available to you (performance counters, queue lengths, etc.). Check out WASABI - the auto-scale application block, part of Enterprise Library. You can also subscribe to a service such as AzureWatch.
You'll need to think about caching, as there's currently no out-of-the-box caching implementation that runs across instances of your web role which is now provided as a service. Read details here, as well as an FAQ here.
Do you need SMTP support? If so, there are details you should read about here. SendGrid recently announced a free-tier promotion for Windows Azure.
Are you hosting WCF services as well? If so, check out this site for further details (specifically the Known Issues).
So: yes, there are some things you need to concern yourself with, but Azure is a great platform for hosting an asp.net application and you should strongly consider it.
It should be very easy to port your application to Azure--especially if you're using a SQL back-end. The code could run almost without modification. You'll need to create an Azure installation package for the project and configuration file.
If your application makes use of persistent storage (other than SQL Server), you may have to rework that code somewhat. However, the platform now has drive storage, which simulates a file system, so this should be fairly easy.
Another issue to watch out for is web.config. If you make heavy use of this for runtime customization, you'll have to rework that too. You can't deploy single files to your application in Azure, so the recommended approach is to migrate these sort of settings to the Azure config file.
The hardest thing you're likely to encounter is external applications. If your app relies on launching other processes, then this will require some serious redesign.
Azure now supports Web Sites as a deployment type. Basically this allows you to publish any standard Asp.net (and other supported like PHP etc) application to Azure and have it as a scalable server. See this article http://blog.ntotten.com/2012/06/07/10-things-about-windows-azure-web-sites/
Many of the benefits of Azure without having to introduce Azure specific code/Project to your existing application.
Also this question here What is the difference between an Azure Web Site and an Azure Web Role

Offline mode in ASP.NET Web Application

I want to build a web application (SaaS) that can work both in Online and Offline modes. The user needs limited features in case he is offline and full feature access when he becomes online again. I thought of the following options:
Make the user download a local server such as Cassini and devise an architecture to allow online and offline modes in the web application. I am not sure how it will be done but I believe all the commands will be routed through this local server. The local server will then decide whether it accesses the local resources or the server.
Making a user install application on his system will defeat the whole idea behind SaaS.
Use Google Gears - I just checked how Google Docs work in offline mode. It installs Google Gears on the user's system which was pretty neat and fast and copies all the files locally. A link is provided to access the offline version. This seems like a good option to me as it integrates a local server, relational datastore and a worker pool in itself but is Google Gears mature enough to be used in production?
Has anyone worked/working on such an application. Ideas welcome.
EDIT #1:
I am not very familiar with Silverlight and whether it can be used in such a scenario.
EDIT #2: The following link mentions that SilverLight can be used to develop Offline applications Offline SilverLight
I am looking for expert comments from people who have used SilverLight in their development. Can user work offline? Can user re-open the same webpage after closing the browser window?
If you choose to let users install an app on their computer, I would consider developing a Windows Forms app instead of a web app, basically because this seem like a more logical solution. If you deploy the app using ClickOnce it is remarkably easy to keep the clients up to date.
From a user's point of view, I think that Gears is mature. I use in it Gmail, Google Calendar and Google Docs, pretty much without any problems. I don't know about the developer tools. It might help to use Google Clusure Library since it has methods specific for Google Gears.
Depending on the web browser that you need to support, you could also take a look at HTML 5. O'Reilly's online book Building iPhone Apps with HTML, CSS, and JavaScript has a chapter about making a web app work in offline mode.
Seems to me that "web application" and "offline mode" are a bit contradictory.
I have seen some examples of Silverlight being used in such a way however. And, at one time, I implemented a WinForms smart client application that worked in such a way. These days, though, I would definately look into Silverlight.

Resources