website - compile classes -update in the server - c#

I have created a website using ASP.Net and running on port 8080. When server is still running, I can some changes in the code. Interestingly, those changes are reflected on my site when I pressed refresh button. I just wondering with this because I guess we have to compile and rebuild site to see new changes.
thanks !

Yes, WebSite working in this way. WebApplication requires rebuild all because all codebehind logic are built in DLL of WebProject
See this MSDN article: Comparing Web Site Projects and Web Application Projects
Web Site Projects
Prefer dynamic compilation and working on pages without building entire site on each page view (that is, save file and
then simply refresh the page in the browser).

That depends on if you have an asp web site of a web application. Take a look at this msdn page for more info.

When you have the full source for an ASP.NET web site (not a web application) running, your site will be dynamically compiled, and changes you make will be detected.
From the MSDN documentation, Understanding ASP.NET Dynamic Compilation:
Any changes to a dynamically compiled file will automatically invalidate the file's cached compiled assembly and trigger recompilation of all affected resources. The next time a request to the code is made, ASP.NET recognizes that the code has changed and recompiles the affected resources of the Web application. This system enables you to quickly develop applications with a minimum of compilation processing overhead. (Note that depending on the change to the resources, the result can range from recompiling a single page to recompiling the whole Web site.)

Related

Slow startup (asp.net website, entityframework)

I know this kind of question has been asked manytimes, but those topics I found didn't help me much.
I've a asp.net website, very simple one, with a very simple default page, which require some data (just some) from the database. I'm using the Enity Ado.net framework for the database. I also set the Model's "Lazy Loading Enabled" to False. I just don't know why it took so long to start the first time I access the website. After that, the speed is ok.
I'll be very appreciated if someone can help me to find what'm I doing wrong here.
Thanks in advance!
If you go and search for it on Microsofts´ Website you will find enough resources that will answer your question. I believe to answer questions here at SO while there exist somewhere else, is just wrong.
Compiling on First Request
By default, ASP.NET Web pages and code
files are compiled dynamically when users first request a resource,
such as an ASP.NET page (.aspx file), from a Web site. After pages and
code files have been compiled the first time, the compiled resources
are cached, so that subsequent requests to the same page are extremely
efficient. ASP.NET supports the dynamic compilation of ASP.NET pages
(.aspx files), ASP.NET Web services (.asmx files), ASP.NET HTTP
handlers (.ashx files) and ASP.NET application files (Global.asax), as
well as other files, such as source code and class files. For more
information about ASP.NET file types, see Web Site File Types. For
more information about the ASP.NET compilation process, see the
"Compilation Life Cycle" section of ASP.NET Application Life Cycle
Overview.
Source

Application getting slow when open the application for the first time

I have developed a application in ASP.NET using c#. The entire application working fine but the problem is when I open the application for first time it running very slow. i.e. its taking so much time to load a page like home page or any other page. But when I reopen that page then that page opens quickly as I expect. Even whenever application getting session expired and relogin into application its taking so much time again to load all the pages for the first time, where from 2nd time to opens that pages its not happening. So can anybody tell me what is the problem occuring here.
The application is compiled on the first request.
Read this article by Microsoft.
Because ASP.NET compiles your Web site on first user request, you can
simply copy your application's source code to the production Web
server. However, ASP.NET also provides precompilation options that
allow you to compile your Web site before it has been deployed, or to
compile it after it has been deployed but before a user requests it.
Precompilation has several advantages. It can improve the performance
of your Web site on first request because there will be no lag time
while ASP.NET compiles the site. Precompiling can also help you find
errors that might otherwise be found only when a user requests a page.
Finally, if you precompile the Web site before you deploy it, you can
deploy the assemblies instead of the source code.
You can precompile a Web site using the ASP.NET compiler tool (ASPNET_Compiler.exe). The tool that provides the following precompilation options:
In-place compilation This option performs the same compilation that occurs during dynamic compilation. Use this option to compile a Web site that has already been deployed to a production server.
Non-updateable full precompilation Use this to compile an application and then copy the compiled output to the production server. All application code, markup, and UI code is compiled into assemblies. Placeholder files such as .aspx pages still exist so that you can perform file-specific tasks such as configure permissions, but the files contain no updateable code. In order to update any page or any code you must precompile the Web site again and deploy it again.
Updateable precompilation This is similar to non-updateable full precompilation, except that UI elements such as .aspx pages and .ascx controls retain all their markup, UI code, and inline code, if any. You can update code in the file after it has been deployed; ASP.NET will detect changes to the file and recompile it. Note that code in a code-behind file (.vb or .cs file) built into assemblies during precompilation, and you therefore cannot change it without going through the precompilation and deployment steps again.
However, you mentioned that it's also slow if the session expired. Maybe you are loading too much into memory on session start. It's difficult to make a diagnosis without more informations.
Check your site in firebug in .net tab there you will find which part of your page take much time to load,
there might be some exceptions or some code errors in client side language.
Try to use less sessions
and debug your code to clarify no extra looping of code
(sorry for bad English but hopefully you have got my point)

Do we have to re-publish the Web-site if we modify a part of the code in the aspx pages?

If we make a slight modification of the code in the C# page or in the aspx page, do we have to republish the entire web-site after the modification?
I am using VS-2008 professional and the code is written in C#.
It depends, if you are connnected to the website using a ftp connection (Solution showing as ftp://ftp.somewebsite.com) then your alterations will be updated real time. If you are using a local copy of the website (offline website), you need to publish the entire website once your are done.
So to answer your question we need more information about how you setup your website in the solution.
There are two case of modification:
UI (HTML Code), you can just click to refresh the browser without having to rebuild the solution
Server Code (C# code), you have to click F6 in VS2008 and rebuild the solution
It depends on which code you modify:
if you make a change to the asp markup of the aspx , than you don't have to.
if you change your code behind, then you will need to rebuild your
project therefore you have to republish it.

Protect source code of an ASP.NET website

In our college they have competition--students have to develop and show some code. It has a cash prize. I have done an entry as a website (C#) using asp.net. The problem is that my website is in the computer laboratory of the college, so anybody can open Visual Studio and copy my project or edit it.
I want to protect my project. Is there any way to put password for the project alone in Visual Studio? To make it attractive I have hosted the website in the IIS of the server, so by using the IP adresss I can run the project anywhere with intranet access.
When I put a lock like EasyFileLocker, I am unable to open and run the project using the IP address.
I want to run my project anywhere in the intranet, but also protect its code.
How can I do that?
Presuming your source code is somewhere safe (if not, then put it somewhere safe over which you have control), then the deployed end result need not expose the source code in its raw format; you can pre-compile ASP.NET websites entirely (such that even the markup can't be edited on the server - at least not very easily) - do this by selecting the pre-compilation options on the deploy screen, being sure to uncheck "allow this website to be updatable".
the exact method of specifying the right build options differs between VS versions, but the options are the same ultimately: Precompile, (Don't) Allow precompiled site to be updatable.
The result is the code of your website ending up in binaries, including the page markup (the files still exist, but simply as placeholders with their substance missing.) For someone to get at your code, they'd need to reflect your binaries.

What part of web site to be WSP / WAP?

I'm new to ASP.NET, and would like an understanding of when/where to use WSP vs WAP.
I will make a rather simple business website, with 6-7 pages, where one page will open a registration/login form where the user can see various personal data and reports, pulled from a database.
Would this suggest the use of a combination of WSP and WAP, where for example the login window is part of the WSP, and a successful login opens a WAP in a frame or in a new browser window/tab?
mmhh you are confused with the notion of web application and web site.
You cannot make one page in one way and another the other way, because WAP and WSP are type of project. So it is at the beginning of your project in visual studio to decide which one to use.
Basically, WSP is leaving the compilation of your code to IIS, and so you are working only with files. Using WAP, your project behaves like in a normal application, Visual studio will then compile your code to create different dll. You will then have only to move to your production environment the page aspx and the dlls, whereas with WSP, you would also include aspx.cs.
this link will tell you everything you might want to know
hope it helped,

Categories