Monday, September 8, 2008

An undocumented Error ASP.NET "Arguments to MakeRelative must be root-relative"

I've been coming accross this error in one of my applications which use EpiServer and custom Page base class... it driving me banana, anyone came accross something like this?


Server Error in '/XXX.Web' Application.

Arguments to MakeRelative must be root-relative

Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code. 

Exception Details: System.ArgumentException: Arguments to MakeRelative must be root-relative

Source Error: 

An unhandled exception was generated during the execution of the current web request. Information regarding the origin and location of the exception can be identified using the exception stack trace below.

Stack Trace: 

[ArgumentException: Arguments to MakeRelative must be root-relative]    EPiServer.UrlBuilder.MakeRelative(String fromBase, String path) +417    EPiServer.UrlBuilder.Rebase(UrlBuilder fromBaseUrl, UrlBuilder toBaseUrl, RebaseKind kind) +553    EPiServer.Web.FriendlyHtmlRewriteToExternal.HtmlRewriteUrl(UrlBuilder internalUrl, UrlBuilder externalUrl, UrlBuilder url, Encoding encoding, Object& internalObject) +139    EPiServer.Web.FriendlyHtmlRewriteToExternal.rewritePipe_HtmlRewriteUrl(Object sender, HtmlRewriteEventArgs e) +304    EPiServer.Web.RewritePipe.OnHtmlRewriteUrl(HtmlRewriteEventArgs e) +19    EPiServer.Web.HtmlRewritePipe.WriteElement(MyHtmlRewriteEventArgs e, SgmlReader reader, TextWriter writer) +404    EPiServer.Web.HtmlRewritePipe.RewriteToEnd(TextReader reader, TextWriter writer) +2063    EPiServer.Web.HtmlRewriteStream.Close() +165    System.Web.HttpWriter.Filter(Boolean finalFiltering) +69    System.Web.HttpResponse.FilterOutput() +82    System.Web.CallFilterExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() +47    System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) +75 


Version Information: Microsoft .NET Framework Version:2.0.50727.3053; ASP.NET Version:2.0.50727.3053

Wednesday, September 3, 2008

Google Chrome a Revolutionary Browser

One of the worst deficiencies in today’s browsers is the single thread per tab and one process per browser module. Opera, Firefox and IE would continually grow in memory. Memory allocated for new tabs are never deallocated and recycle, even if you close that tab.

A simple experiment with an IE instance and 50 tabs would show the defficiencies in that single process model. Once a single tab crashes, the entire process would fail; therefore, You would lose all your tabs and your work in progress. If check process explorer while running Google Chrome, you would find multiple chrome.exe instances. It is a different design, chrome uses a multi-processes design, in addition to multi threading. Every new tab in the browser is a new process with its own memory space, this is significantly different and it enhances the way of browsing and multi tasking within a browser. also If one site/tab crashes, the browsing issue is mitigated. And that single tab/process would be closed. All of it’s memory would be freed, and other tabs are saved. The main browser window has its own task manager, and could be used to close independent tabs/web applications

One of my friends has noticed increased performance of Ajax controls when running the site (SharePoint site) in Chrome, the reason for that is that Chrome is using V8 JavaScript Engine which COMPILES JavaScript to machine code that runs within the process instead of using Javascript as a script language and interpreting it, thus any JavaScript will run so much faster.
Conclusion: I believe their browser will grow very quickly in the market since they are considering Web2.0 and Web Applications into the design and architecture form the beginning, they are also performing Quality Control Tests using their Google Database of top ranked sites, can you top that with a better diverse list of test cases, I just hope it complies with CSS standards but at the same time be intelligent enough to render IE custom styles correctly as well, I also hope that they will not create their own standards and force us developers to start customizing Google Chrome hacks for it as well with their market share.