I created a website on MVC C# and locally it behaves as it is expected, but once I upload it on Azure it starts loading slow (initial load), each page takes its own time. I've enabled the Always On feature, but it didn't do much good. Now the question is if there is a way to force on access the whole web application to be build instead of the Page by page mode that is currently active.
If you mean the initial request takes long and then any subsequent requests are fast, then that would be because you are hitting .NET apps cold start. Many .NET apps are slow to JIT and load all their .NET requirements, but once everything is loaded, they are fast.
As scheien said, please choose the closest region when choose app service plan.
If pages still loading slow. I would suggest you use Windows Internet Explorer Developer Tools Network Capture to find out detailed issue: https://msdn.microsoft.com/en-us/library/gg130952(v=vs.85).aspx. If it related with your application, please optimize the code.
Regards
Related
I want to make my uwp app as fast as possible like Microsoft apps. Whenever I open the Groove Music it is always ready to show me the list of songs even the page I visited last time. It doesn't load for a moment. What's the mechanism behind that? How can I make my app fast like that? actually, I want my app to be always ready to show a list of items in listview whenever I open my app.
The feature you are looking for is called Prelaunch. Most Microsoft apps opt into prelaunch which will make them eligible to get background-launched (and then suspended) opportunistically by the OS, based on some heuristics. Then when the user launches the app, the OS will just need to resume them from suspended state which is much faster than launching them cold. The OS will prioritize apps that the user frequently launches, so you may not see an immediate effect, but over time the user will get better launch times.
https://learn.microsoft.com/en-us/windows/uwp/launch-resume/handle-app-prelaunch
Check this document. It will make your app really fast like pure Microsoft apps. I am an enthusiastic .net developer. I figured out this.
https://learn.microsoft.com/en-us/windows/uwp/debug-test-perf/best-practices-for-your-app-s-startup-performance
Open properties of the project solution. Go to the build section. Then enable Compile with .NET Native tool chain
Select release instead of debug and then select run or the green button (Local Machine). It will take time and you will see the result after that.
As a web developer, when I have multiple sites that are related by a common theme or common department, I have a home page that has links to the different sites. For example, there may be a site for reports (output to pdf or excel), another for inputting and editing sales data, and yet another for real-time tracking. Normally these links are in a header or sidebar which is static and can be accessed by all associated apps.
I'm reading about Metro/Modern apps now. I'll be trying to make my first Metro app soon. However, I'm wondering if it's possible to have (at least the illusion) of accessing 3 different apps through 1 app. So the user, just as in the web app, goes to one place.
If so, does anyone have any resources they can share?
To include multiple apps in the same frame they would need to all be part of the same app.
If you want links to jump between apps then you can create a protocol association to launch into the apps. This can include an arbitrary string so you can deep link rather than going just to the opening page.
On Windows 8.1 this connection is one-way: launching the protocol is fire-and-forget. The launching app doesn't get any feedback or results from the launched app.
Windows 10 adds the ability to return results to use the app as a service. I think this sounds more like what you are looking for.
See Auto-launching with file and URI associations on MSDN and the Build session App-to-App Communication: Building a Web of Apps
actually in Windows Universal app it's the same Approach. You got your app, and different pages where you could navigate back and forth... each page with it's unique look depending on your Need.
The user will open one app to Access all...
searching a bit in the net will Show you a lot of examples... Topic: Navigation, LiveCylcles, ...
At work, we're currently discussing the eventuality that our product needs to be a web application, mostly due to ease of distribution (e.g. getting servers set up by the IT departments of our customers).
Our desktop application is heavily reliant on user input, it has lots of forms and hundreds of controls which are shown and hidden based on others.
My question is, is there a NICE/EASY way - without having to remodel the entire product, which is our current solution - to make this easy for web development?
Thanks in advance.
If ease of distribution is the primary concern then maybe using a Windows Forms ClickOnce might be a viable option as you can publish your application on a webpage and users can run the application from that webpage, but it runs as a local windows forms application - and if you don't need to make any changes to the local registry or other elevated rights operations then all you need on that machine is the correct .NET Framework for it to run.
I've written an application in C# that I would now like to host within an ASP.NET website (MVC 2).
The application can become quite resource intensive so I would like to set up the system in such a way that each user downloads the application and runs it locally, but still within the web page that I provide.
My first idea to solve this problem was to host the program within a silverlight application. However, the app I want to host was not compiled for Silverlight, and I would like to use MySQL in it, which also appears to not be possible directly (ie without a web service in between).
The bottom line is that don't have experience with these things directly yet, and I need to research the way to make any solution possible. So I would really appreciate some input to put me in the right direction, and not have to implement 3 wrong options before finding the right one. I would also really like to avoid JavaScript if at all possible.
Thanks in advance.
Update
I probably should have specified to begin with what the application is exactly.
The application as I want to host it on the website is a simple chat program. It needs an input box and text output. The old windows forms application won't have to run in ASP, but I want to use the class library behind it, which is a chatbot engine. That engine is the part that can be rather resource intensive.
So you wrote a "rich client" application and you want to serve it as a web/silverlight application. This is not possible without changing the architecture of your app, as you probably guess, expecially because you have to interface a database. If rewriting the application to support such architecture is not an option, the best in order to me is to use Remote Desktop, but you have to pay for licenses in order to support many connections.
If your application is not a web application then it will not run on the server. The only thing your server does is to provide a download location. For that, you wouldn't need a MVC site - static pages could fit. The programming model between normal applications running on the client and server applications running on IIS is completely different. So in short: you won't be able to host your client application in ASP.NET MVC. If this is a requirement you will end up rewriting the application.
If your application is ASP.NET WebForms and it becomes too resource hungry, then you probably won't solve it by just switching to MVC. You have different options then: more resources on the server side, analyzing what could be done to lower the resources required or moving away from a server based application. This is not a black/white decision, maybe a combination might fit.
After spending 14 hours on this I think its time to share my woes and see if anyone has experienced this issue before.
Ill describe the issue and tests I have done to rule out certain things.
Ok so I have a WPF application which loads in data from an SQL database.
I am using DevExpress Components for datagrids, ribbons etc.. and FluentNhibernate to provide a session for database operations. I am also using log4net to log events to a textfile.
Using the application on my laptop with SQL Express 2008 works fine.. the application starts up, retrieves 1000 records and I can tab through the controls on the ribbon.
Now, I decided to demo the application to a third party and used remote login/sharing software online to share my desktop with the other person so as I could load the application on my laptop and they could view me using the application.
Now, the application takes approx 45 seconds to load... 30 seconds with a blank database where as, when im not sharing out my screen using the online software the application loads in about 7-10 seconds. As well as that, even using the controls in the application during the demo were very sticky, slow and unresponsive.
During the sharing session though however I was able to use other applications without any problems.. everything else worked fine.
But I cannot understand how my application works ok under normal conditions , even browsing the net at the same time etc... BUT totally fails to perform correctly when I am sharing a session with another user... the CPU usage shot up to 100% too at times when the application was trying to start up...
Please see below a list of 3rd party dlls I am using as references in my project.
DevExpress dlls
FluidKit
PixelLab.WPF
PixelLab.Common
Galasoft WPF Kit
FluentNHibernate
NHibernate
Nhibernate.ByteCode.Castle
Skype4ComLib
TXTEXTControl
log4net
LinqKit
All of these DLLs are in the output folder with the application dlls created from the class assemblys in the project. So when installed via an installer on a machine the dlls will be in the same application folder as the application file itself.
Many thanks
I saw something similar about a year ago with logmein. The performance is not the app its the graphics processing . WPF renders graphically in a completely different way then GDI winforms see around 2.3 and down msdn article. Many remote desktop application have trouble rendering this correctly particularly if you don't use the plug ins (say logmein). You didn't say what you were using but I would suggest trying a few different RDP options as there are many out there, and making sure your on the newest versions.
Yes, as bumle-bee-tuna points out, WPF will default to software rendering over Remote Desktop. Another way may be to screen share using Skype or similar. This means you'll be rendering the app locally but transmitting an image to the remote user. the app should work at full speed and the only lag the viewer will see will be introduced by the Skype network. I've used this technique many times to deliver presentations remotely and works well!