Search Results

Search found 55405 results on 2217 pages for 'net tutorials'.

Page 8/2217 | < Previous Page | 4 5 6 7 8 9 10 11 12 13 14 15  | Next Page >

  • asp.NET Dynamic Data Site and asp.NET MVC-2 site together

    - by loviji
    Hi, I have created firstly ASP.NET MVC 2. and write more functionality. After I create asp.NET Dynamic Data Site. now, when I click on run button in Visual Studio, mvc app. opened in browser as http://localhost:50062. and asp.NET Dynamic Data Site as http://localhost:58395/cms/. but i want to merge this app. in one. can I use asp.NET Dynamic Data Site and asp.NET MVC-2 at the same time?

    Read the article

  • Upgrading ASP.NET AJAX 1.0 Websites to .NET 4.5

    - by Lijo
    I have an existing website in ASP.Net 2.0 that uses ASP.Net Ajax 1.0. This is developed using Visual Studio 2005. Now, we are planning to upgrade this to .Net 4.5 and VS2013. When I made a search, I could see that there are blogs about upgrading projects with Ajax 1.0 to .Net 3.5 version. However I could not find useful links for upgrading to .Net 4.5. Do we have any useful links for that? Or is it an unworkable approach? Note: As of now we have not purchased VS2013 and servers for this. Purchase depends on the feasibility study. Hence I cannot test it myself, at present. Upgrading ASP.NET AJAX 1.0 Websites and Web Applications to .NET Framework 3.5 How To: Upgrade an ASP.NET AJAX 1.0 Web Project to .NET Framework 3.5

    Read the article

  • Does 'Web Pages' use the same syntax as 'MVC'?

    - by Laberto
    I see that there is a new model in ASP.NET development which called 'ASP.NET Web Pages'. I would like to know if this model resembles the ASP.NET MVC Model. The point is that I found it difficult to learn ASP.NET MVC and someone told me: OK, if you learn ASP.NET Web Pages at first then learning ASP.NET MVC will be easier because of the Razor syntax in both models. Could you please tell me the truth if you have tried both?

    Read the article

  • What’s new in ASP.NET 4.0: Core Features

    - by Rick Strahl
    Microsoft released the .NET Runtime 4.0 and with it comes a brand spanking new version of ASP.NET – version 4.0 – which provides an incremental set of improvements to an already powerful platform. .NET 4.0 is a full release of the .NET Framework, unlike version 3.5, which was merely a set of library updates on top of the .NET Framework version 2.0. Because of this full framework revision, there has been a welcome bit of consolidation of assemblies and configuration settings. The full runtime version change to 4.0 also means that you have to explicitly pick version 4.0 of the runtime when you create a new Application Pool in IIS, unlike .NET 3.5, which actually requires version 2.0 of the runtime. In this first of two parts I'll take a look at some of the changes in the core ASP.NET runtime. In the next edition I'll go over improvements in Web Forms and Visual Studio. Core Engine Features Most of the high profile improvements in ASP.NET have to do with Web Forms, but there are a few gems in the core runtime that should make life easier for ASP.NET developers. The following list describes some of the things I've found useful among the new features. Clean web.config Files Are Back! If you've been using ASP.NET 3.5, you probably have noticed that the web.config file has turned into quite a mess of configuration settings between all the custom handler and module mappings for the various web server versions. Part of the reason for this mess is that .NET 3.5 is a collection of add-on components running on top of the .NET Runtime 2.0 and so almost all of the new features of .NET 3.5 where essentially introduced as custom modules and handlers that had to be explicitly configured in the config file. Because the core runtime didn't rev with 3.5, all those configuration options couldn't be moved up to other configuration files in the system chain. With version 4.0 a consolidation was possible, and the result is a much simpler web.config file by default. A default empty ASP.NET 4.0 Web Forms project looks like this: <?xml version="1.0"?> <configuration> <system.web> <compilation debug="true" targetFramework="4.0" /> </system.web> </configuration> Need I say more? Configuration Transformation Files to Manage Configurations and Application Packaging ASP.NET 4.0 introduces the ability to create multi-target configuration files. This means it's possible to create a single configuration file that can be transformed based on relatively simple replacement rules using a Visual Studio and WebDeploy provided XSLT syntax. The idea is that you can create a 'master' configuration file and then create customized versions of this master configuration file by applying some relatively simplistic search and replace, add or remove logic to specific elements and attributes in the original file. To give you an idea, here's the example code that Visual Studio creates for a default web.Release.config file, which replaces a connection string, removes the debug attribute and replaces the CustomErrors section: <?xml version="1.0"?> <configuration xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform"> <connectionStrings> <add name="MyDB" connectionString="Data Source=ReleaseSQLServer;Initial Catalog=MyReleaseDB;Integrated Security=True" xdt:Transform="SetAttributes" xdt:Locator="Match(name)"/> </connectionStrings> <system.web> <compilation xdt:Transform="RemoveAttributes(debug)" /> <customErrors defaultRedirect="GenericError.htm" mode="RemoteOnly" xdt:Transform="Replace"> <error statusCode="500" redirect="InternalError.htm"/> </customErrors> </system.web> </configuration> You can see the XSL transform syntax that drives this functionality. Basically, only the elements listed in the override file are matched and updated – all the rest of the original web.config file stays intact. Visual Studio 2010 supports this functionality directly in the project system so it's easy to create and maintain these customized configurations in the project tree. Once you're ready to publish your application, you can then use the Publish <yourWebApplication> option on the Build menu which allows publishing to disk, via FTP or to a Web Server using Web Deploy. You can also create a deployment package as a .zip file which can be used by the WebDeploy tool to configure and install the application. You can manually run the Web Deploy tool or use the IIS Manager to install the package on the server or other machine. You can find out more about WebDeploy and Packaging here: http://tinyurl.com/2anxcje. Improved Routing Routing provides a relatively simple way to create clean URLs with ASP.NET by associating a template URL path and routing it to a specific ASP.NET HttpHandler. Microsoft first introduced routing with ASP.NET MVC and then they integrated routing with a basic implementation in the core ASP.NET engine via a separate ASP.NET routing assembly. In ASP.NET 4.0, the process of using routing functionality gets a bit easier. First, routing is now rolled directly into System.Web, so no extra assembly reference is required in your projects to use routing. The RouteCollection class now includes a MapPageRoute() method that makes it easy to route to any ASP.NET Page requests without first having to implement an IRouteHandler implementation. It would have been nice if this could have been extended to serve *any* handler implementation, but unfortunately for anything but a Page derived handlers you still will have to implement a custom IRouteHandler implementation. ASP.NET Pages now include a RouteData collection that will contain route information. Retrieving route data is now a lot easier by simply using this.RouteData.Values["routeKey"] where the routeKey is the value specified in the route template (i.e., "users/{userId}" would use Values["userId"]). The Page class also has a GetRouteUrl() method that you can use to create URLs with route data values rather than hardcoding the URL: <%= this.GetRouteUrl("users",new { userId="ricks" }) %> You can also use the new Expression syntax using <%$RouteUrl %> to accomplish something similar, which can be easier to embed into Page or MVC View code: <a runat="server" href='<%$RouteUrl:RouteName=user, id=ricks %>'>Visit User</a> Finally, the Response object also includes a new RedirectToRoute() method to build a route url for redirection without hardcoding the URL. Response.RedirectToRoute("users", new { userId = "ricks" }); All of these routines are helpers that have been integrated into the core ASP.NET engine to make it easier to create routes and retrieve route data, which hopefully will result in more people taking advantage of routing in ASP.NET. To find out more about the routing improvements you can check out Dan Maharry's blog which has a couple of nice blog entries on this subject: http://tinyurl.com/37trutj and http://tinyurl.com/39tt5w5. Session State Improvements Session state is an often used and abused feature in ASP.NET and version 4.0 introduces a few enhancements geared towards making session state more efficient and to minimize at least some of the ill effects of overuse. The first improvement affects out of process session state, which is typically used in web farm environments or for sites that store application sensitive data that must survive AppDomain restarts (which in my opinion is just about any application). When using OutOfProc session state, ASP.NET serializes all the data in the session statebag into a blob that gets carried over the network and stored either in the State server or SQL Server via the Session provider. Version 4.0 provides some improvement in this serialization of the session data by offering an enableCompression option on the web.Config <Session> section, which forces the serialized session state to be compressed. Depending on the type of data that is being serialized, this compression can reduce the size of the data travelling over the wire by as much as a third. It works best on string data, but can also reduce the size of binary data. In addition, ASP.NET 4.0 now offers a way to programmatically turn session state on or off as part of the request processing queue. In prior versions, the only way to specify whether session state is available is by implementing a marker interface on the HTTP handler implementation. In ASP.NET 4.0, you can now turn session state on and off programmatically via HttpContext.Current.SetSessionStateBehavior() as part of the ASP.NET module pipeline processing as long as it occurs before the AquireRequestState pipeline event. Output Cache Provider Output caching in ASP.NET has been a very useful but potentially memory intensive feature. The default OutputCache mechanism works through in-memory storage that persists generated output based on various lifetime related parameters. While this works well enough for many intended scenarios, it also can quickly cause runaway memory consumption as the cache fills up and serves many variations of pages on your site. ASP.NET 4.0 introduces a provider model for the OutputCache module so it becomes possible to plug-in custom storage strategies for cached pages. One of the goals also appears to be to consolidate some of the different cache storage mechanisms used in .NET in general to a generic Windows AppFabric framework in the future, so various different mechanisms like OutputCache, the non-Page specific ASP.NET cache and possibly even session state eventually can use the same caching engine for storage of persisted data both in memory and out of process scenarios. For developers, the OutputCache provider feature means that you can now extend caching on your own by implementing a custom Cache provider based on the System.Web.Caching.OutputCacheProvider class. You can find more info on creating an Output Cache provider in Gunnar Peipman's blog at: http://tinyurl.com/2vt6g7l. Response.RedirectPermanent ASP.NET 4.0 includes features to issue a permanent redirect that issues as an HTTP 301 Moved Permanently response rather than the standard 302 Redirect respond. In pre-4.0 versions you had to manually create your permanent redirect by setting the Status and Status code properties – Response.RedirectPermanent() makes this operation more obvious and discoverable. There's also a Response.RedirectToRoutePermanent() which provides permanent redirection of route Urls. Preloading of Applications ASP.NET 4.0 provides a new feature to preload ASP.NET applications on startup, which is meant to provide a more consistent startup experience. If your application has a lengthy startup cycle it can appear very slow to serve data to clients while the application is warming up and loading initial resources. So rather than serve these startup requests slowly in ASP.NET 4.0, you can force the application to initialize itself first before even accepting requests for processing. This feature works only on IIS 7.5 (Windows 7 and Windows Server 2008 R2) and works in combination with IIS. You can set up a worker process in IIS 7.5 to always be running, which starts the Application Pool worker process immediately. ASP.NET 4.0 then allows you to specify site-specific settings by setting the serverAutoStartEnabled on a particular site along with an optional serviceAutoStartProvider class that can be used to receive "startup events" when the application starts up. This event in turn can be used to configure the application and optionally pre-load cache data and other information required by the app on startup.  The configuration settings need to be made in applicationhost.config: <sites> <site name="WebApplication2" id="1"> <application path="/" serviceAutoStartEnabled="true" serviceAutoStartProvider="PreWarmup" /> </site> </sites> <serviceAutoStartProviders> <add name="PreWarmup" type="PreWarmupProvider,MyAssembly" /> </serviceAutoStartProviders> Hooking up a warm up provider is optional so you can omit the provider definition and reference. If you do define it here's what it looks like: public class PreWarmupProvider System.Web.Hosting.IProcessHostPreloadClient { public void Preload(string[] parameters) { // initialization for app } } This code fires and while it's running, ASP.NET/IIS will hold requests from hitting the pipeline. So until this code completes the application will not start taking requests. The idea is that you can perform any pre-loading of resources and cache values so that the first request will be ready to perform at optimal performance level without lag. Runtime Performance Improvements According to Microsoft, there have also been a number of invisible performance improvements in the internals of the ASP.NET runtime that should make ASP.NET 4.0 applications run more efficiently and use less resources. These features come without any change requirements in applications and are virtually transparent, except that you get the benefits by updating to ASP.NET 4.0. Summary The core feature set changes are minimal which continues a tradition of small incremental changes to the ASP.NET runtime. ASP.NET has been proven as a solid platform and I'm actually rather happy to see that most of the effort in this release went into stability, performance and usability improvements rather than a massive amount of new features. The new functionality added in 4.0 is minimal but very useful. A lot of people are still running pure .NET 2.0 applications these days and have stayed off of .NET 3.5 for some time now. I think that version 4.0 with its full .NET runtime rev and assembly and configuration consolidation will make an attractive platform for developers to update to. If you're a Web Forms developer in particular, ASP.NET 4.0 includes a host of new features in the Web Forms engine that are significant enough to warrant a quick move to .NET 4.0. I'll cover those changes in my next column. Until then, I suggest you give ASP.NET 4.0 a spin and see for yourself how the new features can help you out. © Rick Strahl, West Wind Technologies, 2005-2010Posted in ASP.NET  

    Read the article

  • Just released: a new SEO extension for the ASP.NET MVC routing engine

    - by efran.cobisi
    Dear users,after several months of hard work, we are proud to announce to the world that Cobisi's new SEO routing engine for ASP.NET MVC has been officially released! We even provide a free edition which comes at no cost, so this is something you can't really miss if you are a serious ASP.NET developer. ;)SEO routes for ASP.NET MVCCobisi SEO Extensions - this is the name of the product - is an advanced tool for software developers that allows to optimize ASP.NET MVC web applications and sites for search engines. It comes with a powerful routing engine, which extends the standard ASP.NET routing module to provide a much more flexible way to define search optimized routes, and a complete set of classes that make customizing the entire routing infrastructure very easy and cool.In its simplest form, defining a route for an MVC action is just a matter of decorating the method with the [Route("...")] attribute and specifying the desired URL. The library will take care of the rest and set up the route accordingly; while coding routes this way, Cobisi SEO Extensions also shows how the final routes will be, without leaving the Visual Studio IDE!Manage MVC routes with easeIn fact, Cobisi SEO Extensions integrates with the Visual Studio IDE to offer a large set of time-saving improvements targeted at ASP.NET developers. A new tool window, for example, allows to easily browse among the routes exposed by your applications, being them standard ASP.NET routes, MVC specific routes or SEO routes. The routes can be easily filtered on the fly, to ease finding the ones you are interested in. Double clicking a SEO route will even open the related ASP.NET MVC controller, at the beginning of the specified action method.In addition to that, Cobisi SEO Extensions allows to easily understand how each SEO route is composed by showing the routing model details directly in the IDE, beneath each MVC action route.Furthermore, Cobisi SEO Extensions helps developers to easily recognize which class is an MVC controller and which methods is an MVC action by drawing a special dashed underline mark under each items of these categories.Developers, developers, developers, ...We are really eager to receive your feedback and suggestions - please feel free to ping us with your comments! Thank you! Cheers! -- Efran Cobisi Cobisi lead developer Microsoft MVP, MCSD, MCAD, MCTS: SQL Server 2005, MCP

    Read the article

  • Writing Unit Tests for an ASP.NET MVC Action Method that handles Ajax Request and Normal Request

    - by shiju
    In this blog post, I will demonstrate how to write unit tests for an ASP.NET MVC action method, which handles both Ajax request and normal HTTP Request. I will write a unit test for specifying the behavior of an Ajax request and will write another unit test for specifying the behavior of a normal HTTP request. Both Ajax request and normal request will be handled by a single action method. So the ASP.NET MVC action method will be execute HTTP Request object’s IsAjaxRequest method for identifying whether it is an Ajax request or not. So we have to create mock object for Request object and also have to make as a Ajax request from the unit test for verifying the behavior of an Ajax request. I have used NUnit and Moq for writing unit tests. Let me write a unit test for a Ajax request Code Snippet [Test] public void Index_AjaxRequest_Returns_Partial_With_Expense_List() {     // Arrange       Mock<HttpRequestBase> request = new Mock<HttpRequestBase>();     Mock<HttpResponseBase> response = new Mock<HttpResponseBase>();     Mock<HttpContextBase> context = new Mock<HttpContextBase>();       context.Setup(c => c.Request).Returns(request.Object);     context.Setup(c => c.Response).Returns(response.Object);     //Add XMLHttpRequest request header     request.Setup(req => req["X-Requested-With"]).         Returns("XMLHttpRequest");       IEnumerable<Expense> fakeExpenses = GetMockExpenses();     expenseRepository.Setup(x => x.GetMany(It.         IsAny<Expression<Func<Expense, bool>>>())).         Returns(fakeExpenses);     ExpenseController controller = new ExpenseController(         commandBus.Object, categoryRepository.Object,         expenseRepository.Object);     controller.ControllerContext = new ControllerContext(         context.Object, new RouteData(), controller);     // Act     var result = controller.Index(null, null) as PartialViewResult;     // Assert     Assert.AreEqual("_ExpenseList", result.ViewName);     Assert.IsNotNull(result, "View Result is null");     Assert.IsInstanceOf(typeof(IEnumerable<Expense>),             result.ViewData.Model, "Wrong View Model");     var expenses = result.ViewData.Model as IEnumerable<Expense>;     Assert.AreEqual(3, expenses.Count(),         "Got wrong number of Categories");         }   In the above unit test, we are calling Index action method of a controller named ExpenseController, which will returns a PartialView named _ExpenseList, if it is an Ajax request. We have created mock object for HTTPContextBase and setup XMLHttpRequest request header for Request object’s X-Requested-With for making it as a Ajax request. We have specified the ControllerContext property of the controller with mocked object HTTPContextBase. Code Snippet controller.ControllerContext = new ControllerContext(         context.Object, new RouteData(), controller); Let me write a unit test for a normal HTTP method Code Snippet [Test] public void Index_NormalRequest_Returns_Index_With_Expense_List() {     // Arrange               Mock<HttpRequestBase> request = new Mock<HttpRequestBase>();     Mock<HttpResponseBase> response = new Mock<HttpResponseBase>();     Mock<HttpContextBase> context = new Mock<HttpContextBase>();       context.Setup(c => c.Request).Returns(request.Object);     context.Setup(c => c.Response).Returns(response.Object);       IEnumerable<Expense> fakeExpenses = GetMockExpenses();       expenseRepository.Setup(x => x.GetMany(It.         IsAny<Expression<Func<Expense, bool>>>())).         Returns(fakeExpenses);     ExpenseController controller = new ExpenseController(         commandBus.Object, categoryRepository.Object,         expenseRepository.Object);     controller.ControllerContext = new ControllerContext(         context.Object, new RouteData(), controller);     // Act     var result = controller.Index(null, null) as ViewResult;     // Assert     Assert.AreEqual("Index", result.ViewName);     Assert.IsNotNull(result, "View Result is null");     Assert.IsInstanceOf(typeof(IEnumerable<Expense>),             result.ViewData.Model, "Wrong View Model");     var expenses = result.ViewData.Model         as IEnumerable<Expense>;     Assert.AreEqual(3, expenses.Count(),         "Got wrong number of Categories"); }   In the above unit test, we are not specifying the XMLHttpRequest request header for Request object’s X-Requested-With, so that it will be normal HTTP Request. If this is a normal request, the action method will return a ViewResult with a view template named Index. The below is the implementation of Index action method Code Snippet public ActionResult Index(DateTime? startDate, DateTime? endDate) {     //If date is not passed, take current month's first and last date     DateTime dtNow;     dtNow = DateTime.Today;     if (!startDate.HasValue)     {         startDate = new DateTime(dtNow.Year, dtNow.Month, 1);         endDate = startDate.Value.AddMonths(1).AddDays(-1);     }     //take last date of start date's month, if end date is not passed     if (startDate.HasValue && !endDate.HasValue)     {         endDate = (new DateTime(startDate.Value.Year,             startDate.Value.Month, 1)).AddMonths(1).AddDays(-1);     }     var expenses = expenseRepository.GetMany(         exp => exp.Date >= startDate && exp.Date <= endDate);     //if request is Ajax will return partial view     if (Request.IsAjaxRequest())     {         return PartialView("_ExpenseList", expenses);     }     //set start date and end date to ViewBag dictionary     ViewBag.StartDate = startDate.Value.ToShortDateString();     ViewBag.EndDate = endDate.Value.ToShortDateString();     //if request is not ajax     return View("Index",expenses); }   The index action method will returns a PartialView named _ExpenseList, if it is an Ajax request and will returns a View named Index if it is a normal request. Source Code The source code has been taken from my EFMVC app which can download from here

    Read the article

  • How to learn ASP.NET MVC without learning ASP.NET Web forms

    - by Naif
    First of all, I am not a web developer but I can say that I understand in general the difference between PHP, ASP.NET, etc. I have played a little with ASP.NET and C# as well, however, I didn't continue the learning path. Now I'd like to learn ASP.NET MVC but there is no a book for a beginner in ASP.NET MVC so I had a look at the tutorials but it seems that I need to learn C# first and SQL Server and HTML, am I right? So please tell me how can I learn ASP.NET MVC directly (I mean without learning ASP.NET Web forms). What do I need to learn (You can assume that I am an absolute beginner). Update: It is true that i can find ASP.NET MVC tutorial that explain ASP.NET MVC, but I used to find ASP.NET web forms books that explain SQL and C# at the same time and take you step by step. In ASP.NET MVC I don't know how can I start! How can I learn SQL in its own and C# in its own and then combine them with ASP.NET MVC!

    Read the article

  • Implementing google dashboard type interface in asp.net

    - by Sam_Cogan
    I'm looking at implementing a Google IG type dashboard in a .net app. There are a number of options I've found to do this, and i'm trying to establish what is going to be the best to use, in terms of speed, versatility etc. So far the options I am looking at are either to use asp.net webparts and .net Ajax, this would make it quicker to build, but I'm concerned this is going to make the application bulky and slow, or using JQuery, and either .net MVC or Webforms, to custom build an interface. Does anyone have any thoughts on what the best option may be, or any options I may have missed? All I want to do here is to allow users to customise a dashboard with a number of components (which will be user controls). I do also have access to Telerik controls, but I'm not sure if they would be any use here.

    Read the article

  • Tutorials for .NET database app using SQLite

    - by ChrisC
    I have some MS Access experience, and had a class on console c++ apps, now I am trying to develop my first program. It's a little C# db app. I have the db tables and columns planned and keyed into VS, but that's where I'm stuck. I'm needing C#/VS tutorials that will guide me on configuring relationships, datatyping, etc, on the db so I can get it ready for testing of the schema. The only tutorials I've been able to find either talk about general db basics (ie, not helping me with VS/C#), or about C# communications with an existing SQL db. Thank you. (In case it matters, I'm using the open source System.Data.SQLite (sqlite.phxsoftware.com) for the db. I chose it over SQL Server CE after seeing a comparison between the two. Also I wanted a server-less version of SQL because this little app will be on other people's computers and I want to to do as little support as possible.)

    Read the article

  • Tutorials for .NET database app

    - by ChrisC
    My earlier question and comments are at "What is ADO.NET". This shows my level of knowledge about c# database apps. Can someone point me to tutorials and/or primers that can help me proceed from where I am (also stated in other question)? I've looked and all I've found are tutorials that talk about general db basics (ie, not helping with VS/C#), or talk about connecting to existing SQL db's. I need help setting one up and configuring it, as well as help on how to create and use queries to test the db schema.

    Read the article

  • .NET Reflector 7.2 Early Access Build 2 Released: Performance Critical

    - by Bart Read
    I've just posted a write-up of some of the performance tuning I've done to improve .NET Reflector 7.2's start-up time here: http://www.reflector.net/2011/05/net-reflector-7-start-up-time-running-out-of-gas-or-pedal-to-the-metal/ You can get the new build from the .NET Reflector homepage at http://www.reflector.net/. Please remember to give us your feedback in the forum, at http://forums.reflector.net/, using the tags #7.2 and #eap. Technorati Tags: reflector,early access,7.2

    Read the article

  • .NET Reflector 7.2 Early Access Build 1 Released

    - by Bart Read
    I've just posted up full details of this release on the .NET Reflector blog at http://www.reflector.net/2011/05/life-is-a-journey-not-a-destination-net-reflector-7-2-ea-1-has-been-released/ and, breaking with previous tradition, this includes a fairly extensive changelog. You can download this EA build from the .NET Reflector homepage at http://www.reflector.net/. Enjoy! (And please don't forget to tell us what you think on the forum, http://forums.reflector.net/, using the tags #7.2 and #eap.)...(read more)

    Read the article

  • Redmine on Apache2 with Passenger issue

    - by nkr1pt
    I installed Redmine and run it in Apache2 with the Passenger module. Apache2 boots, Passenger module gets loaded and the Redmine welcome page is shown, however when trying to login or navigate to other parts of the Redmine site, the browser keeps loading and loading and loading forever, although the Redmine production.log indicates redirects and HTTP 200 codes in the header, so everything seems to work correctly according to the log. I tested in various browsers. Does anyone have an idea what could be wrong? I will add apache configuration and some relevant log snippets from both apache and redmine hereafter. Apache2 Redmine configuration: DocumentRoot /var/www <Directory /var/www/redmine> RailsEnv production AllowOverride all RailsBaseURI /redmine PassengerResolveSymLinksInDocumentRoot on </Directory> Apache2 error log after booting Apache: [Wed Feb 09 19:59:58 2011] [notice] Apache/2.2.14 (Ubuntu) Phusion_Passenger/3.0.2 DAV/2 SVN/1.6.6 configured -- resuming normal operations Redmine production log after logging in: Logfile created on Wed Feb 09 20:01:40 +0100 2011 Processing WelcomeController#index (for 192.168.1.55 at 2011-02-09 20:01:48) [GET] Parameters: {"action"=>"index", "controller"=>"welcome"} Rendering template within layouts/base Rendering welcome/index Completed in 220ms (View: 96, DB: 16) | 200 OK [http://sirius/redmine] Processing AccountController#login (for 192.168.1.55 at 2011-02-09 20:03:17) [GET] Parameters: {"action"=>"login", "controller"=>"account"} Rendering template within layouts/base Rendering account/login Completed in 85ms (View: 63, DB: 1) | 200 OK [http://sirius/redmine/login] Processing AccountController#login (for 192.168.1.55 at 2011-02-09 20:03:20) [POST] Parameters: {"back_url"=>"http%3A%2F%2Fsirius%2Fredmine", "action"=>"login", "authenticity_token"=>"cEMUZHhRKJU8w3p6d+xQQhJTk4/pnnzUdg5g5fwhxDU=", "username"=>"admin", "controller"=>"account", "password"=>"[FILTERED]", "login"=>"Login \302\273"} Redirected to http://sirius/redmine Completed in 37ms (DB: 6) | 302 Found [http://sirius/redmine/login] Processing WelcomeController#index (for 192.168.1.55 at 2011-02-09 20:03:20) [GET] Parameters: {"action"=>"index", "controller"=>"welcome"} Rendering template within layouts/base Rendering welcome/index Completed in 100ms (View: 77, DB: 6) | 200 OK [http://sirius/redmine] Apache2 error log afterwards: [Wed Feb 09 20:03:17 2011] [notice] [0209/200317:INFO:net/instaweb/apache/mod_instaweb.cc(247)] ModPagespeed OutputFilter called for request /redmine/login [Wed Feb 09 20:03:17 2011] [notice] [0209/200317:INFO:net/instaweb/apache/mod_instaweb.cc(272)] unparsed=/redmine/login, absolute_url=http://sirius/redmine/login [Wed Feb 09 20:03:17 2011] [notice] [0209/200317:INFO:net/instaweb/util/google_message_handler.cc(48)] http://sirius/redmine/login:1: HtmlParse::StartParse [Wed Feb 09 20:03:17 2011] [notice] [0209/200317:INFO:net/instaweb/apache/mod_instaweb.cc(299)] Request headers:\nHTTP/1.1 0 Internal Server Error\r\nHost: sirius\r\nUser-Agent: Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.2.8) Gecko/20100723 Ubuntu/10.04 (lucid) Firefox/3.6.8\r\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,/;q=0.8\r\nAccept-Language: en-us,en;q=0.5\r\nAccept-Encoding: gzip,deflate\r\nAccept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7\r\nKeep-Alive: 115\r\nConnection: keep-alive\r\nReferer: http://sirius/redmine\r\nCookie: _redmine_session=BAh7BjoPc2Vzc2lvbl9pZCIlNmVlMzFiMDc4MWQxZDU5ZTI5MTk2NjU0NGY3MzJmYzQ%3D--ea4b7adbc35551051632b5544faaad138ae08d90\r\n\r\n [Wed Feb 09 20:03:17 2011] [notice] [0209/200317:INFO:net/instaweb/apache/mod_instaweb.cc(302)] request-filename=/var/www/redmine/login, uri=/redmine/login [Wed Feb 09 20:03:17 2011] [notice] [0209/200317:INFO:net/instaweb/apache/mod_instaweb.cc(319)] ModPagespeed Response headers:\nHTTP/1.1 200 OK\r\nStatus: 200\r\nX-Mod-Pagespeed: 0.9.0.0-128\r\n\r\n [Wed Feb 09 20:03:17 2011] [notice] [0209/200317:INFO:net/instaweb/util/google_message_handler.cc(48)] http://sirius/redmine/login:1: 2157us: HtmlParse::Flush [Wed Feb 09 20:03:17 2011] [notice] [0209/200317:INFO:net/instaweb/util/google_message_handler.cc(48)] http://sirius/redmine/login:1: 2272us: HtmlParse::CoalesceAdjacentCharactersNodes [Wed Feb 09 20:03:17 2011] [notice] [0209/200317:INFO:net/instaweb/util/google_message_handler.cc(48)] http://sirius/redmine/login:1: 2342us: HtmlParse::ApplyFilter:AddHead [Wed Feb 09 20:03:17 2011] [notice] [0209/200317:INFO:net/instaweb/util/google_message_handler.cc(48)] http://sirius/redmine/login:1: 2407us: HtmlParse::SanityCheck [Wed Feb 09 20:03:17 2011] [notice] [0209/200317:INFO:net/instaweb/util/google_message_handler.cc(48)] http://sirius/redmine/login:1: 2504us: HtmlParse::ApplyFilter:CssCombine [Wed Feb 09 20:03:17 2011] [notice] [0209/200317:INFO:net/instaweb/apache/serf_url_async_fetcher.cc(632)] Initiating async fetch for http://sirius/redmine/stylesheets/application.css?1296181549 [Wed Feb 09 20:03:17 2011] [warn] [0209/200317:WARNING:net/instaweb/util/google_message_handler.cc(32)] Failed to create or read input resource /redmine/stylesheets/application.css?1296181549 [Wed Feb 09 20:03:17 2011] [notice] [0209/200317:INFO:net/instaweb/apache/serf_url_async_fetcher.cc(632)] Initiating async fetch for http://sirius/redmine/stylesheets/jstoolbar.css?1296181549 [Wed Feb 09 20:03:17 2011] [warn] [0209/200317:WARNING:net/instaweb/util/google_message_handler.cc(32)] Failed to create or read input resource /redmine/stylesheets/jstoolbar.css?1296181549 [Wed Feb 09 20:03:17 2011] [notice] [0209/200317:INFO:net/instaweb/util/google_message_handler.cc(48)] http://sirius/redmine/login:1: 3642us: HtmlParse::ApplyFilter:CssFilter [Wed Feb 09 20:03:17 2011] [error] [0209/200317:ERROR:net/instaweb/util/google_message_handler.cc(54)] net/instaweb/apache/serf_url_async_fetcher.cc:506: Creating connection [Wed Feb 09 20:03:17 2011] [notice] [0209/200317:INFO:net/instaweb/apache/serf_url_async_fetcher.cc(632)] Initiating async fetch for http://sirius/redmine/stylesheets/application.css?1296181549 [Wed Feb 09 20:03:17 2011] [error] [0209/200317:ERROR:net/instaweb/util/google_message_handler.cc(54)] http://sirius/redmine/login:9: Failed to load resource http://sirius/redmine/stylesheets/application.css?1296181549 [Wed Feb 09 20:03:17 2011] [notice] [0209/200317:INFO:net/instaweb/apache/serf_url_async_fetcher.cc(632)] Initiating async fetch for http://sirius/redmine/stylesheets/jstoolbar.css?1296181549 [Wed Feb 09 20:03:17 2011] [error] [0209/200317:ERROR:net/instaweb/util/google_message_handler.cc(54)] http://sirius/redmine/login:17: Failed to load resource http://sirius/redmine/stylesheets/jstoolbar.css?1296181549 [Wed Feb 09 20:03:17 2011] [error] [0209/200317:ERROR:net/instaweb/util/google_message_handler.cc(54)] net/instaweb/apache/serf_url_async_fetcher.cc:506: Failed to load resource http://sirius/redmine/stylesheets/jstoolbar.css?1296181549 [Wed Feb 09 20:03:17 2011] [notice] [0209/200317:INFO:net/instaweb/util/google_message_handler.cc(48)] http://sirius/redmine/login:1: 4863us: HtmlParse::ApplyFilter:Javascript [Wed Feb 09 20:03:17 2011] [notice] [0209/200317:INFO:net/instaweb/util/google_message_handler.cc(48)] http://sirius/redmine/login:11: Found script with src /redmine/javascripts/prototype.js?1296181549 [Wed Feb 09 20:03:17 2011] [notice] [0209/200317:INFO:net/instaweb/apache/serf_url_async_fetcher.cc(632)] Initiating async fetch for http://sirius/redmine/javascripts/prototype.js?1296181549 [Wed Feb 09 20:03:17 2011] [error] [0209/200317:ERROR:net/instaweb/util/google_message_handler.cc(54)] net/instaweb/apache/serf_url_async_fetcher.cc:506: Creating connection [Wed Feb 09 20:03:17 2011] [notice] [0209/200317:INFO:net/instaweb/util/google_message_handler.cc(29)] http://sirius/redmine/login: Couldn't fetch resource /redmine/javascripts/prototype.js?1296181549 to rewrite. [Wed Feb 09 20:03:17 2011] [notice] [0209/200317:INFO:net/instaweb/util/google_message_handler.cc(48)] http://sirius/redmine/login:12: Found script with src /redmine/javascripts/effects.js?1296181549 [Wed Feb 09 20:03:17 2011] [notice] [0209/200317:INFO:net/instaweb/apache/serf_url_async_fetcher.cc(632)] Initiating async fetch for http://sirius/redmine/javascripts/effects.js?1296181549 [Wed Feb 09 20:03:17 2011] [notice] [0209/200317:INFO:net/instaweb/util/google_message_handler.cc(29)] http://sirius/redmine/login: Couldn't fetch resource /redmine/javascripts/effects.js?1296181549 to rewrite. [Wed Feb 09 20:03:17 2011] [error] [0209/200317:ERROR:net/instaweb/util/google_message_handler.cc(54)] net/instaweb/apache/serf_url_async_fetcher.cc:506: http://sirius/redmine/login: Couldn't fetch resource /redmine/javascripts/effects.js?1296181549 to rewrite. [Wed Feb 09 20:03:17 2011] [notice] [0209/200317:INFO:net/instaweb/util/google_message_handler.cc(48)] http://sirius/redmine/login:13: Found script with src /redmine/javascripts/dragdrop.js?1296181549 [Wed Feb 09 20:03:17 2011] [notice] [0209/200317:INFO:net/instaweb/apache/serf_url_async_fetcher.cc(632)] Initiating async fetch for http://sirius/redmine/javascripts/dragdrop.js?1296181549 [Wed Feb 09 20:03:17 2011] [notice] [0209/200317:INFO:net/instaweb/util/google_message_handler.cc(29)] Creating connection [Wed Feb 09 20:03:17 2011] [error] [0209/200317:ERROR:net/instaweb/util/google_message_handler.cc(54)] net/instaweb/apache/serf_url_async_fetcher.cc:506: Creating connection [Wed Feb 09 20:03:17 2011] [notice] [0209/200317:INFO:net/instaweb/util/google_message_handler.cc(48)] http://sirius/redmine/login:14: Found script with src /redmine/javascripts/controls.js?1296181549 [Wed Feb 09 20:03:17 2011] [notice] [0209/200317:INFO:net/instaweb/apache/serf_url_async_fetcher.cc(632)] Initiating async fetch for http://sirius/redmine/javascripts/controls.js?1296181549 [Wed Feb 09 20:03:17 2011] [notice] [0209/200317:INFO:net/instaweb/util/google_message_handler.cc(29)] http://sirius/redmine/login: Couldn't fetch resource /redmine/javascripts/controls.js?1296181549 to rewrite. [Wed Feb 09 20:03:17 2011] [error] [0209/200317:ERROR:net/instaweb/util/google_message_handler.cc(54)] net/instaweb/apache/serf_url_async_fetcher.cc:506: Creating connection [Wed Feb 09 20:03:17 2011] [notice] [0209/200317:INFO:net/instaweb/util/google_message_handler.cc(48)] http://sirius/redmine/login:15: Found script with src /redmine/javascripts/application.js?1296181549 [Wed Feb 09 20:03:17 2011] [notice] [0209/200317:INFO:net/instaweb/apache/serf_url_async_fetcher.cc(632)] Initiating async fetch for http://sirius/redmine/javascripts/application.js?1296181549 [Wed Feb 09 20:03:17 2011] [notice] [0209/200317:INFO:net/instaweb/util/google_message_handler.cc(29)] Creating connection [Wed Feb 09 20:03:17 2011] [error] [0209/200317:ERROR:net/instaweb/util/google_message_handler.cc(54)] net/instaweb/apache/serf_url_async_fetcher.cc:506: Creating connection [Wed Feb 09 20:03:17 2011] [notice] [0209/200317:INFO:net/instaweb/util/google_message_handler.cc(48)] http://sirius/redmine/login:1: 8389us: HtmlParse::SanityCheck [Wed Feb 09 20:03:17 2011] [notice] [0209/200317:INFO:net/instaweb/util/google_message_handler.cc(48)] http://sirius/redmine/login:1: 8588us: HtmlParse::CoalesceAdjacentCharactersNodes [Wed Feb 09 20:03:17 2011] [notice] [0209/200317:INFO:net/instaweb/util/google_message_handler.cc(48)] http://sirius/redmine/login:1: 8701us: HtmlParse::ApplyFilter:InlineCss [Wed Feb 09 20:03:17 2011] [error] [0209/200317:ERROR:net/instaweb/util/google_message_handler.cc(54)] net/instaweb/apache/serf_url_async_fetcher.cc:506: 8701us: HtmlParse::ApplyFilter:InlineCss [Wed Feb 09 20:03:17 2011] [notice] [0209/200317:INFO:net/instaweb/apache/serf_url_async_fetcher.cc(632)] Initiating async fetch for http://sirius/redmine/stylesheets/application.css?1296181549 [Wed Feb 09 20:03:17 2011] [notice] [0209/200317:INFO:net/instaweb/util/google_message_handler.cc(29)] http://sirius/redmine/login: Couldn't fetch resource /redmine/stylesheets/application.css?1296181549 to rewrite. [Wed Feb 09 20:03:17 2011] [notice] [0209/200317:INFO:net/instaweb/util/google_message_handler.cc(48)] http://sirius/redmine/login:1: 9199us: HtmlParse::ApplyFilter:InlineJs [Wed Feb 09 20:03:17 2011] [error] [0209/200317:ERROR:net/instaweb/util/google_message_handler.cc(54)] net/instaweb/apache/serf_url_async_fetcher.cc:506: Creating connection [Wed Feb 09 20:03:17 2011] [notice] [0209/200317:INFO:net/instaweb/apache/serf_url_async_fetcher.cc(632)] Initiating async fetch for http://sirius/redmine/javascripts/prototype.js?1296181549 [Wed Feb 09 20:03:17 2011] [notice] [0209/200317:INFO:net/instaweb/util/google_message_handler.cc(29)] http://sirius/redmine/login: Couldn't fetch resource /redmine/javascripts/prototype.js?1296181549 to rewrite. [Wed Feb 09 20:03:17 2011] [notice] [0209/200317:INFO:net/instaweb/apache/serf_url_async_fetcher.cc(632)] Initiating async fetch for http://sirius/redmine/javascripts/effects.js?1296181549 [Wed Feb 09 20:03:17 2011] [notice] [0209/200317:INFO:net/instaweb/util/google_message_handler.cc(29)] Creating connectionhttp://sirius/redmine/login: Couldn't fetch resource /redmine/javascripts/effects.js?1296181549 to rewrite. [Wed Feb 09 20:03:17 2011] [error] [0209/200317:ERROR:net/instaweb/util/google_message_handler.cc(54)] net/instaweb/apache/serf_url_async_fetcher.cc:506: Creating connectionhttp://sirius/redmine/login: Couldn't fetch resource /redmine/javascripts/effects.js?1296181549 to rewrite. [Wed Feb 09 20:03:17 2011] [notice] [0209/200317:INFO:net/instaweb/apache/serf_url_async_fetcher.cc(632)] Initiating async fetch for http://sirius/redmine/javascripts/dragdrop.js?1296181549 [Wed Feb 09 20:03:17 2011] [notice] [0209/200317:INFO:net/instaweb/util/google_message_handler.cc(29)] http://sirius/redmine/login: Couldn't fetch resource /redmine/javascripts/dragdrop.js?1296181549 to rewrite. [Wed Feb 09 20:03:17 2011] [error] [0209/200317:ERROR:net/instaweb/util/google_message_handler.cc(54)] net/instaweb/apache/serf_url_async_fetcher.cc:506: Creating connection [Wed Feb 09 20:03:17 2011] [notice] [0209/200317:INFO:net/instaweb/apache/serf_url_async_fetcher.cc(632)] Initiating async fetch for http://sirius/redmine/javascripts/controls.js?1296181549 [Wed Feb 09 20:03:17 2011] [notice] [0209/200317:INFO:net/instaweb/util/google_message_handler.cc(29)] http://sirius/redmine/login: Couldn't fetch resource /redmine/javascripts/controls.js?1296181549 to rewrite. [Wed Feb 09 20:03:17 2011] [notice] [0209/200317:INFO:net/instaweb/apache/serf_url_async_fetcher.cc(632)] Initiating async fetch for http://sirius/redmine/javascripts/application.js?1296181549 [Wed Feb 09 20:03:17 2011] [notice] [0209/200317:INFO:net/instaweb/util/google_message_handler.cc(29)] http://sirius/redmine/login: Couldn't fetch resource /redmine/javascripts/application.js?1296181549 to rewrite. [Wed Feb 09 20:03:17 2011] [error] [0209/200317:ERROR:net/instaweb/util/google_message_handler.cc(54)] net/instaweb/apache/serf_url_async_fetcher.cc:506: Creating connection [Wed Feb 09 20:03:17 2011] [notice] [0209/200317:INFO:net/instaweb/util/google_message_handler.cc(48)] http://sirius/redmine/login:1: 11398us: HtmlParse::ApplyFilter:ImgRewrite [Wed Feb 09 20:03:17 2011] [notice] [0209/200317:INFO:net/instaweb/util/google_message_handler.cc(48)] http://sirius/redmine/login:1: 11506us: HtmlParse::ApplyFilter:CacheExtender [Wed Feb 09 20:03:17 2011] [notice] [0209/200317:INFO:net/instaweb/apache/serf_url_async_fetcher.cc(632)] Initiating async fetch for http://sirius/redmine/stylesheets/application.css?1296181549 [Wed Feb 09 20:03:17 2011] [notice] [0209/200317:INFO:net/instaweb/util/google_message_handler.cc(29)] http://sirius/redmine/login: Couldn't fetch resource /redmine/stylesheets/application.css?1296181549 to rewrite. [Wed Feb 09 20:03:17 2011] [error] [0209/200317:ERROR:net/instaweb/util/google_message_handler.cc(54)] net/instaweb/apache/serf_url_async_fetcher.cc:506: Creating connection [Wed Feb 09 20:03:17 2011] [notice] [0209/200317:INFO:net/instaweb/apache/serf_url_async_fetcher.cc(632)] Initiating async fetch for http://sirius/redmine/javascripts/prototype.js?1296181549 [Wed Feb 09 20:03:17 2011] [notice] [0209/200317:INFO:net/instaweb/util/google_message_handler.cc(29)] http://sirius/redmine/login: Couldn't fetch resource /redmine/javascripts/prototype.js?1296181549 to rewrite. [Wed Feb 09 20:03:17 2011] [notice] [0209/200317:INFO:net/instaweb/apache/serf_url_async_fetcher.cc(632)] Initiating async fetch for http://sirius/redmine/javascripts/effects.js?1296181549 [Wed Feb 09 20:03:17 2011] [error] [0209/200317:ERROR:net/instaweb/util/google_message_handler.cc(54)] net/instaweb/apache/serf_url_async_fetcher.cc:506: Creating connection [Wed Feb 09 20:03:17 2011] [notice] [0209/200317:INFO:net/instaweb/util/google_message_handler.cc(29)] http://sirius/redmine/login: Couldn't fetch resource /redmine/javascripts/effects.js?1296181549 to rewrite. [Wed Feb 09 20:03:17 2011] [notice] [0209/200317:INFO:net/instaweb/apache/serf_url_async_fetcher.cc(632)] Initiating async fetch for http://sirius/redmine/javascripts/dragdrop.js?1296181549 [Wed Feb 09 20:03:17 2011] [notice] [0209/200317:INFO:net/instaweb/util/google_message_handler.cc(29)] http://sirius/redmine/login: Couldn't fetch resource /redmine/javascripts/dragdrop.js?1296181549 to rewrite. [Wed Feb 09 20:03:17 2011] [error] [0209/200317:ERROR:net/instaweb/util/google_message_handler.cc(54)] net/instaweb/apache/serf_url_async_fetcher.cc:506: Creating connection [Wed Feb 09 20:03:17 2011] [notice] [0209/200317:INFO:net/instaweb/apache/serf_url_async_fetcher.cc(632)] Initiating async fetch for http://sirius/redmine/javascripts/controls.js?1296181549 [Wed Feb 09 20:03:17 2011] [notice] [0209/200317:INFO:net/instaweb/util/google_message_handler.cc(29)] http://sirius/redmine/login: Couldn't fetch resource /redmine/javascripts/controls.js?1296181549 to rewrite. [Wed Feb 09 20:03:17 2011] [notice] [0209/200317:INFO:net/instaweb/apache/serf_url_async_fetcher.cc(632)] Initiating async fetch for http://sirius/redmine/javascripts/application.js?1296181549 [Wed Feb 09 20:03:17 2011] [notice] [0209/200317:INFO:net/instaweb/util/google_message_handler.cc(29)] http://sirius/redmine/login: Couldn't fetch resource /redmine/javascripts/application.js?1296181549 to rewrite. [Wed Feb 09 20:03:17 2011] [error] [0209/200317:ERROR:net/instaweb/util/google_message_handler.cc(54)] net/instaweb/apache/serf_url_async_fetcher.cc:506: Creating connection [Wed Feb 09 20:03:17 2011] [notice] [0209/200317:INFO:net/instaweb/apache/serf_url_async_fetcher.cc(632)] Initiating async fetch for http://sirius/redmine/stylesheets/jstoolbar.css?1296181549 [Wed Feb 09 20:03:17 2011] [notice] [0209/200317:INFO:net/instaweb/util/google_message_handler.cc(29)] http://sirius/redmine/login: Couldn't fetch resource /redmine/stylesheets/jstoolbar.css?1296181549 to rewrite. [Wed Feb 09 20:03:17 2011] [notice] [0209/200317:INFO:net/instaweb/util/google_message_handler.cc(48)] http://sirius/redmine/login:1: 14401us: HtmlParse::ApplyFilter:HtmlWriter [Wed Feb 09 20:03:17 2011] [error] [0209/200317:ERROR:net/instaweb/util/google_message_handler.cc(54)] net/instaweb/apache/serf_url_async_fetcher.cc:506: Creating connection [Wed Feb 09 20:03:17 2011] [error] [0209/200317:ERROR:net/instaweb/util/google_message_handler.cc(54)] net/instaweb/apache/serf_url_async_fetcher.cc:506: Creating connection [Wed Feb 09 20:03:17 2011] [notice] [0209/200317:INFO:net/instaweb/util/google_message_handler.cc(48)] http://sirius/redmine/login:1: 15218us: HtmlParse::FinishParse [Wed Feb 09 20:03:17 2011] [error] [0209/200317:ERROR:net/instaweb/util/google_message_handler.cc(54)] net/instaweb/apache/serf_url_async_fetcher.cc:506: Creating connection [Wed Feb 09 20:03:17 2011] [error] [0209/200317:ERROR:net/instaweb/util/google_message_handler.cc(54)] net/instaweb/apache/serf_url_async_fetcher.cc:506: Creating connection [Wed Feb 09 20:03:17 2011] [error] [0209/200317:ERROR:net/instaweb/util/google_message_handler.cc(54)] net/instaweb/apache/serf_url_async_fetcher.cc:506: Creating connection [Wed Feb 09 20:03:17 2011] [error] [0209/200317:ERROR:net/instaweb/util/google_message_handler.cc(54)] net/instaweb/apache/serf_url_async_fetcher.cc:506: Creating connection [Wed Feb 09 20:03:20 2011] [warn] [client 192.168.1.55] Not GET request: 2., referer: http://sirius/redmine/login [Wed Feb 09 20:03:20 2011] [notice] [0209/200320:INFO:net/instaweb/apache/mod_instaweb.cc(247)] ModPagespeed OutputFilter called for request /redmine/login [Wed Feb 09 20:03:20 2011] [notice] [0209/200320:INFO:net/instaweb/apache/mod_instaweb.cc(272)] unparsed=/redmine/login, absolute_url=http://sirius/redmine/login [Wed Feb 09 20:03:20 2011] [notice] [0209/200320:INFO:net/instaweb/util/google_message_handler.cc(48)] http://sirius/redmine/login:1: HtmlParse::StartParse [Wed Feb 09 20:03:20 2011] [notice] [0209/200320:INFO:net/instaweb/apache/mod_instaweb.cc(299)] Request headers:\nHTTP/1.1 0 Internal Server Error\r\nHost: sirius\r\nUser-Agent: Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.2.8) Gecko/20100723 Ubuntu/10.04 (lucid) Firefox/3.6.8\r\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,/;q=0.8\r\nAccept-Language: en-us,en;q=0.5\r\nAccept-Encoding: gzip,deflate\r\nAccept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7\r\nKeep-Alive: 115\r\nConnection: keep-alive\r\nReferer: http://sirius/redmine/login\r\nCookie: _redmine_session=BAh7BzoPc2Vzc2lvbl9pZCIlNmVlMzFiMDc4MWQxZDU5ZTI5MTk2NjU0NGY3MzJmYzQ6EF9jc3JmX3Rva2VuIjFjRU1VWkhoUktKVTh3M3A2ZCt4UVFoSlRrNC9wbm56VWRnNWc1ZndoeERVPQ%3D%3D--8b195ac3cab88b5a1f408e3f18aaddc70782140e\r\nContent-Type: application/x-www-form-urlencoded\r\nContent-Length: 165\r\n\r\n [Wed Feb 09 20:03:20 2011] [notice] [0209/200320:INFO:net/instaweb/apache/mod_instaweb.cc(302)] request-filename=/var/www/redmine/login, uri=/redmine/login [Wed Feb 09 20:03:20 2011] [notice] [0209/200320:INFO:net/instaweb/apache/mod_instaweb.cc(319)] ModPagespeed Response headers:\nHTTP/1.1 302 Found\r\nLocation: http://sirius/redmine\r\nStatus: 302\r\nX-Mod-Pagespeed: 0.9.0.0-128\r\n\r\n [Wed Feb 09 20:03:20 2011] [notice] [0209/200320:INFO:net/instaweb/util/google_message_handler.cc(48)] http://sirius/redmine/login:1: 604us: HtmlParse::Flush [Wed Feb 09 20:03:20 2011] [notice] [0209/200320:INFO:net/instaweb/util/google_message_handler.cc(48)] http://sirius/redmine/login:1: 697us: HtmlParse::CoalesceAdjacentCharactersNodes [Wed Feb 09 20:03:20 2011] [notice] [0209/200320:INFO:net/instaweb/util/google_message_handler.cc(48)] http://sirius/redmine/login:1: 758us: HtmlParse::ApplyFilter:AddHead [Wed Feb 09 20:03:20 2011] [notice] [0209/200320:INFO:net/instaweb/util/google_message_handler.cc(48)] http://sirius/redmine/login:1: 813us: HtmlParse::SanityCheck [Wed Feb 09 20:03:20 2011] [notice] [0209/200320:INFO:net/instaweb/util/google_message_handler.cc(48)] http://sirius/redmine/login:1: 912us: HtmlParse::CoalesceAdjacentCharactersNodes [Wed Feb 09 20:03:20 2011] [notice] [0209/200320:INFO:net/instaweb/util/google_message_handler.cc(48)] http://sirius/redmine/login:1: 965us: HtmlParse::ApplyFilter:CssCombine [Wed Feb 09 20:03:20 2011] [notice] [0209/200320:INFO:net/instaweb/util/google_message_handler.cc(48)] http://sirius/redmine/login:1: 1020us: HtmlParse::ApplyFilter:CssFilter [Wed Feb 09 20:03:20 2011] [notice] [0209/200320:INFO:net/instaweb/util/google_message_handler.cc(48)] http://sirius/redmine/login:1: 1073us: HtmlParse::ApplyFilter:Javascript [Wed Feb 09 20:03:20 2011] [notice] [0209/200320:INFO:net/instaweb/util/google_message_handler.cc(48)] http://sirius/redmine/login:1: 1125us: HtmlParse::ApplyFilter:InlineCss [Wed Feb 09 20:03:20 2011] [notice] [0209/200320:INFO:net/instaweb/util/google_message_handler.cc(48)] http://sirius/redmine/login:1: 1179us: HtmlParse::ApplyFilter:InlineJs [Wed Feb 09 20:03:20 2011] [notice] [0209/200320:INFO:net/instaweb/util/google_message_handler.cc(48)] http://sirius/redmine/login:1: 1233us: HtmlParse::ApplyFilter:ImgRewrite [Wed Feb 09 20:03:20 2011] [notice] [0209/200320:INFO:net/instaweb/util/google_message_handler.cc(48)] http://sirius/redmine/login:1: 1285us: HtmlParse::ApplyFilter:CacheExtender [Wed Feb 09 20:03:20 2011] [notice] [0209/200320:INFO:net/instaweb/util/google_message_handler.cc(48)] http://sirius/redmine/login:1: 1338us: HtmlParse::ApplyFilter:HtmlWriter [Wed Feb 09 20:03:20 2011] [notice] [0209/200320:INFO:net/instaweb/util/google_message_handler.cc(48)] http://sirius/redmine/login:1: 1415us: HtmlParse::FinishParse [Wed Feb 09 20:03:20 2011] [notice] [0209/200320:INFO:net/instaweb/apache/mod_instaweb.cc(247)] ModPagespeed OutputFilter called for request /redmine [Wed Feb 09 20:03:20 2011] [notice] [0209/200320:INFO:net/instaweb/apache/mod_instaweb.cc(272)] unparsed=/redmine, absolute_url=http://sirius/redmine [Wed Feb 09 20:03:20 2011] [notice] [0209/200320:INFO:net/instaweb/util/google_message_handler.cc(48)] http://sirius/redmine:1: HtmlParse::StartParse [Wed Feb 09 20:03:20 2011] [notice] [0209/200320:INFO:net/instaweb/apache/mod_instaweb.cc(299)] Request headers:\nHTTP/1.1 0 Internal Server Error\r\nHost: sirius\r\nUser-Agent: Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.2.8) Gecko/20100723 Ubuntu/10.04 (lucid) Firefox/3.6.8\r\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,/;q=0.8\r\nAccept-Language: en-us,en;q=0.5\r\nAccept-Encoding: gzip,deflate\r\nAccept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7\r\nKeep-Alive: 115\r\nConnection: keep-alive\r\nReferer: http://sirius/redmine/login\r\nCookie: _redmine_session=BAh7BzoMdXNlcl9pZGkGOg9zZXNzaW9uX2lkIiVlYjNmYTY5NmZjNzMwYTdhMjA5ZDJmZmM4MTM0MzcyMw%3D%3D--57a4931aae681664d2a6ff6c039ac84b6ebc9e55\r\nIf-None-Match: "76628aff953f11fbdefb77ce3d575718"\r\n\r\n [Wed Feb 09 20:03:20 2011] [notice] [0209/200320:INFO:net/instaweb/apache/mod_instaweb.cc(302)] request-filename=/var/www/redmine, uri=/redmine [Wed Feb 09 20:03:20 2011] [notice] [0209/200320:INFO:net/instaweb/apache/mod_instaweb.cc(319)] ModPagespeed Response headers:\nHTTP/1.1 200 OK\r\nStatus: 200\r\nX-Mod-Pagespeed: 0.9.0.0-128\r\n\r\n [Wed Feb 09 20:03:20 2011] [notice] [0209/200320:INFO:net/instaweb/util/google_message_handler.cc(48)] http://sirius/redmine:1: 1870us: HtmlParse::Flush [Wed Feb 09 20:03:20 2011] [notice] [0209/200320:INFO:net/instaweb/util/google_message_handler.cc(48)] http://sirius/redmine:1: 1973us: HtmlParse::CoalesceAdjacentCharactersNodes [Wed Feb 09 20:03:20 2011] [notice] [0209/200320:INFO:net/instaweb/util/google_message_handler.cc(48)] http://sirius/redmine:1: 2040us: HtmlParse::ApplyFilter:AddHead [Wed Feb 09 20:03:20 2011] [notice] [0209/200320:INFO:net/instaweb/util/google_message_handler.cc(48)] http://sirius/redmine:1: 2101us: HtmlParse::SanityCheck [Wed Feb 09 20:03:20 2011] [notice] [0209/200320:INFO:net/instaweb/util/google_message_handler.cc(48)] http://sirius/redmine:1: 2231us: HtmlParse::ApplyFilter:CssCombine [Wed Feb 09 20:03:20 2011] [notice] [0209/200320:INFO:net/instaweb/apache/serf_url_async_fetcher.cc(632)] Initiating async fetch for http://sirius/redmine/stylesheets/application.css?1296181549

    Read the article

  • Using SocialCounter.NET with ASP.NET MVC

    - by DigiMortal
    I found small library called SocialCounter.NET that is able to display some data from popular social sites. Although it is possible to use widgets offered by social networks there are also scenarios when you don’t want or can’t use these JavaScript based widgets. In this posting I will show you how to use SocialCounter.NET. Start with downloading SocialCounter.NET. You can also use NuGet package manager to download SocialCounter.NET. Using SocialCounter.NET is very easy as you can see from this example view: @using SocialCounter.NET; @{      ViewBag.Title = "Home Page"; } <h2>Social</h2> <p>     Twitter followers: @Counter.GetTwitterFollowersCount("gpeipman")<br />     Facebook friends: @Counter.GetFacebookFriendsCount("gpeipman")<br />     Facebook likes: @Counter.GetFacebookLikes("http://www.eindhovenmetalmeeting.nl/")<br />     Delicious saves count: @Counter.GetDeliciousSaveCount("http://youreffectiveleadership.com/")<br /> </p> And the result is shown on image on right. You can use SocialCounter.NET by example on user profile pages and on your content pages where you want to show how many people have saved current page as bookmark. SocialCounter.NET supports also LinkedIn, RSS-feeds and Google Plus accounts. In future – I hope – they will add support for more social networks to their library.

    Read the article

  • ASP.NET Charting Control no longer working with .NET 4

    - by Moose Factory
    I've just upgraded to .NET 4 and my ASP.NET Chart Control no longer displays. For .NET 3.5, the HTML produced by the control used to look like this: <img id="20_Chart" src="/ChartImg.axd?i=chart_5f6a8fd179a246a5a0f4f44fcd7d5e03_0.png&amp;g=16eb7881335e47dcba16fdfd8339ba1a" alt="" style="height:300px;width:300px;border-width:0px;" /> and now, for .NET 4, it looks like this (note the change in the source path): <img id="20_Chart" src="/Statistics/Summary/ChartImg.axd?i=chart_5f6a8fd179a246a5a0f4f44fcd7d5e03_0.png&amp;g=16eb7881335e47dcba16fdfd8339ba1a" alt="" style="height:300px;width:300px;border-width:0px;" /> The chart is in an MVC partial view that is in an MVC Area folder called "Statistics" and a MVC Views folder called "Summary" (i.e. "/Areas/Statistics/Views/Summary"), so this is obviously where the change of path is coming from. All I've done is to switch the System.Web.DataVisualization assembly from, 3.5 to 4.0. Any help greatly appreciated.

    Read the article

  • Looking into ASP.Net MVC 4.0 Mobile Development - part 1

    - by nikolaosk
    In this post I will be looking how ASP.Net MVC 4.0 helps us to create web solutions that target mobile devices.We all experience the magic that is the World Wide Web through mobile devices. Millions of people around the world, use tablets and smartphones to view the contents of websites,e-shops and portals.ASP.Net MVC 4.0 includes a new mobile project template and the ability to render a different set of views for different types of devices.There is a new feature that is called browser overriding which allows us to control exactly what a user is going to see from your web application regardless of what type of device he is using.In order to follow along this post you must have Visual Studio 2012 and .Net Framework 4.5 installed in your machine.Download and install VS 2012 using this link.My machine runs on Windows 8 and Visual Studio 2012 works just fine.It will work fine in Windows 7 as well so do not worry if you do not have the latest Microsoft operating system.1) Launch VS 2012 and create a new Web Forms application by going to File - >New Project - > ASP.Net MVC 4 Web Application and then click OKHave a look at the picture below  2) From the available templates select Mobile Application and then click OK.Have a look at the picture below 3) When I run the application I get the mobile view of the page. I would like to show you what a typical ASP.Net MVC 4.0 application looks like. So I will create a new simple ASP.Net MVC 4.0 Web Application. When I run the application I get the normal page view.Have a look at the picture below.On the left is the mobile view and on the right the normal view. As you can see we have more or less the same content in our mobile application (log in,register) compared with the normal ASP.Net MVC 4.0 application but it is optimised for mobile devices. 4) Let me explain how and when the mobile view is selected and finally rendered.There is a feature in MVC 4.0 that is called Display Modes and with this feature the runtime will select a view.If we have 2 views e.g contact.mobile.cshtml and contact.cshtml in our application the Controller at some point will instruct the runtime to select and render a view named contact.The runtime will look at the browser making the request and will determine if it is a mobile browser or a desktop browser. So if there is a request from my IPhone Safari browser for a particular site, if there is a mobile view the MVC 4.0 will select it and render it. If there is not a mobile view, the normal view will be rendered.5) In the  ASP.Net MVC 4.0 (Internet application) I created earlier (not the first project which was a mobile one) I can run it once more and see how it looks on the browser. If I want to view it with a mobile browser I must download one emulator like Opera Mobile.You can download Opera Mobile hereWhen I run the application I get the same view in both the desktop and the mobile browser. That was to be expected. Have a look at the picture below 6) Then I create another version of the _Layout.mobile.cshtml view in the Shared folder.I simply copy and paste the _Layout.cshtml  into the same folder and then rename it to _Layout.mobile.cshtml and then just alter the contents of the _Layout.mobile.cshtml.When I run again the application I get a different view on the desktop browser and a different one on the Opera mobile browser.Have a look at the picture below ?he Controller will instruct the ASP.Net runtime to select and render a view named _Layout.mobile.cshtml when the request will come from a mobile browser.?he runtime knows that a browser is a mobile one through the ASP.Net browser capability provider. Hope it helps!!!

    Read the article

  • ASP.NET Web API - Screencast series with downloadable sample code - Part 1

    - by Jon Galloway
    There's a lot of great ASP.NET Web API content on the ASP.NET website at http://asp.net/web-api. I mentioned my screencast series in original announcement post, but we've since added the sample code so I thought it was worth pointing the series out specifically. This is an introductory screencast series that walks through from File / New Project to some more advanced scenarios like Custom Validation and Authorization. The screencast videos are all short (3-5 minutes) and the sample code for the series is both available for download and browsable online. I did the screencasts, but the samples were written by the ASP.NET Web API team. So - let's watch them together! Grab some popcorn and pay attention, because these are short. After each video, I'll talk about what I thought was important. I'm embedding the videos using HTML5 (MP4) with Silverlight fallback, but if something goes wrong or your browser / device / whatever doesn't support them, I'll include the link to where the videos are more professionally hosted on the ASP.NET site. Note also if you're following along with the samples that, since Part 1 just looks at the File / New Project step, the screencast part numbers are one ahead of the sample part numbers - so screencast 4 matches with sample code demo 3. Note: I started this as one long post for all 6 parts, but as it grew over 2000 words I figured it'd be better to break it up. Part 1: Your First Web API [Video and code on the ASP.NET site] This screencast starts with an overview of why you'd want to use ASP.NET Web API: Reach more clients (thinking beyond the browser to mobile clients, other applications, etc.) Scale (who doesn't love the cloud?!) Embrace HTTP (a focus on HTTP both on client and server really simplifies and focuses service interactions) Next, I start a new ASP.NET Web API application and show some of the basics of the ApiController. We don't write any new code in this first step, just look at the example controller that's created by File / New Project. using System; using System.Collections.Generic; using System.Linq; using System.Net.Http; using System.Web.Http; namespace NewProject_Mvc4BetaWebApi.Controllers { public class ValuesController : ApiController { // GET /api/values public IEnumerable<string> Get() { return new string[] { "value1", "value2" }; } // GET /api/values/5 public string Get(int id) { return "value"; } // POST /api/values public void Post(string value) { } // PUT /api/values/5 public void Put(int id, string value) { } // DELETE /api/values/5 public void Delete(int id) { } } } Finally, we walk through testing the output of this API controller using browser tools. There are several ways you can test API output, including Fiddler (as described by Scott Hanselman in this post) and built-in developer tools available in all modern browsers. For simplicity I used Internet Explorer 9 F12 developer tools, but you're of course welcome to use whatever you'd like. A few important things to note: This class derives from an ApiController base class, not the standard ASP.NET MVC Controller base class. They're similar in places where API's and HTML returning controller uses are similar, and different where API and HTML use differ. A good example of where those things are different is in the routing conventions. In an HTTP controller, there's no need for an "action" to be specified, since the HTTP verbs are the actions. We don't need to do anything to map verbs to actions; when a request comes in to /api/values/5 with the DELETE HTTP verb, it'll automatically be handled by the Delete method in an ApiController. The comments above the API methods show sample URL's and HTTP verbs, so we can test out the first two GET methods by browsing to the site in IE9, hitting F12 to bring up the tools, and entering /api/values in the URL: That sample action returns a list of values. To get just one value back, we'd browse to /values/5: That's it for Part 1. In Part 2 we'll look at getting data (beyond hardcoded strings) and start building out a sample application.

    Read the article

  • ASP.NET MVC, Web API, Razor, e Open Source (Código Aberto)

    - by Leniel Macaferi
    A Microsoft tornou o código fonte da ASP.NET MVC disponível sob uma licença open source (de código aberto) desde a primeira versão V1. Nós também integramos uma série de grandes tecnologias de código aberto no produto, e agora entregamos jQuery, jQuery UI, jQuery Mobile, jQuery Validation, Modernizr.js, NuGet, Knockout.js e JSON.NET como parte integrante dos lançamentos da ASP.NET MVC. Estou muito animado para anunciar hoje que também iremos liberar o código fonte da ASP.NET Web API e ASP.NET Web Pages (também conhecido como Razor) sob uma licença open source (Apache 2.0), e que iremos aumentar a transparência do desenvolvimento de todos os três projetos hospedando seus repositórios de código no CodePlex (usando o novo suporte ao Git anunciado na semana passada - em Inglês). Isso permitirá um modelo de desenvolvimento mais aberto, onde toda a comunidade será capaz de participar e fornecer feedback nos checkins (envios de código), corrigir bugs, desenvolver novos recursos, e construir e testar os produtos diariamente usando a versão do código-fonte e testes mais atualizada possível. Nós também pela primeira vez permitiremos que os desenvolvedores de fora da Microsoft enviem correções e contribuições de código que a equipe de desenvolvimento da Microsoft irá rever para potencial inclusão nos produtos. Nós anunciamos uma abordagem de desenvolvimento semelhantemente aberta com o Windows Azure SDK em Dezembro passado, e achamos que essa abordagem é um ótimo caminho para estreitar as relações, pois permite um excelente ciclo de feedback com os desenvolvedores - e, finalmente, permite a entrega de produtos ainda melhores, como resultado. Muito importante - ASP.NET MVC, Web API e o Razor continuarão a ser totalmente produtos suportados pela Microsoft que são lançados tanto independentemente, bem como parte do Visual Studio (exatamente da mesma maneira como é feito hoje em dia). Eles também continuarão a ser desenvolvidos pelos mesmos desenvolvedores da Microsoft que os constroem hoje (na verdade, temos agora muito mais desenvolvedores da Microsoft trabalhando na equipe da ASP.NET). Nosso objetivo com o anúncio de hoje é aumentar ainda mais o ciclo de feedback/retorno sobre os produtos, para nos permitir oferecer produtos ainda melhores. Estamos realmente entusiasmados com as melhorias que isso trará. Saiba mais Agora você pode navegar, sincronizar e construir a árvore de código fonte da ASP.NET MVC, Web API, e Razor através do website http://aspnetwebstack.codeplex.com.  O repositório Git atual no site refere-se à árvore de desenvolvimento do marco RC (release candidate/candidata a lançamento) na qual equipe vem trabalhando nas últimas semanas, e esta mesma árvore contém ambos o código fonte e os testes, e pode ser construída e testada por qualquer pessoa. Devido aos binários produzidos serem bin-deployable (DLLs instaladas diretamente na pasta bin sem demais dependências), isto permite a você compilar seus próprios builds e experimentar as atualizações do produto, tão logo elas sejam adicionadas no repositório. Agora você também pode contribuir diretamente para o desenvolvimento dos produtos através da revisão e envio de feedback sobre os checkins de código, enviando bugs e ajudando-nos a verificar as correções tão logo elas sejam enviadas para o repositório, sugerindo e dando feedback sobre os novos recursos enquanto eles são implementados, bem como enviando suas próprias correções ou contribuições de código. Note que todas as submissões de código serão rigorosamente analisadas ??e testadas pelo Time da ASP.NET MVC, e apenas aquelas que atenderem a um padrão elevado de qualidade e adequação ao roadmap (roteiro) definido para as próximas versões serão incorporadas ao código fonte do produto. Sumário Todos nós da equipe estamos realmente entusiasmados com o anúncio de hoje - isto é algo no qual nós estivemos trabalhando por muitos anos. O estreitamento no relacionamento entre a comunidade e os desenvolvedores nos permitirá construir produtos ainda melhores levando a ASP.NET para o próximo nível em termos de inovação e foco no cliente. Obrigado! Scott P.S. Além do blog, eu uso o Twitter para disponibilizar posts rápidos e para compartilhar links. Meu apelido no Twitter é: @scottgu Texto traduzido do post original por Leniel Macaferi.

    Read the article

  • ASP.NET MVC 2 RTM Unit Tests not compiling

    - by nmarun
    I found something weird this time when it came to ASP.NET MVC 2 release. A very handful of people ‘made noise’ about the release.. at least on the asp.net blog site, usually there’s a big ‘WOOHAA… <something> is released’, kind of a thing. Hmm… but here’s the reason I’m writing this post. I’m not sure how many of you read the release notes before downloading the version.. I did, I did, I did. Now there’s a ‘Known issues’ section in the document and I’m quoting the text as is from this section: Unit test project does not contain reference to ASP.NET MVC 2 project: If the Solution Explorer window is hidden in Visual Studio, when you create a new ASP.NET MVC 2 Web application project and you select the option Yes, create a unit test project in the Create Unit Test Project dialog box, the unit test project is created but does not have a reference to the associated ASP.NET MVC 2 project. When you build the solution, Visual Studio will display compilation errors and the unit tests will not run. There are two workarounds. The first workaround is to make sure that the Solution Explorer is displayed when you create a new ASP.NET MVC 2 Web application project. If you prefer to keep Solution Explorer hidden, the second workaround is to manually add a project reference from the unit test project to the ASP.NET MVC 2 project. This definitely looks like a bug to me and see below for a visual: At the top right corner you’ll see that the Solution Explorer is set to auto hide and there’s no reference for the TestMvc2 project and that is the reason we get compilation errors without even writing a single line of code. So thanks to <VeryBigFont>ME</VeryBigFont> and <VerySmallFont>Microsoft</VerySmallFont>) , we’ve shown the world how to resolve a major issue and to live in Peace with the rest of humanity!

    Read the article

  • Teaching high school kids ASP.NET programming

    - by dotneteer
    During the 2011 Microsoft MVP Global Summit, I have been talking to people about teaching kids ASP.NET programming. I want to work with volunteer organizations to provide kids volunteer opportunities while learning technical skills that can be applied elsewhere. The goal is to teach motivated kids enough skill to be productive with no more than 6 hours of instruction. Based on my prior teaching experience of college extension courses and involvement with high school math and science competitions, I think this is quite doable with classic ASP but a challenge with ASP.NET. I don’t want to use ASP because it does not provide a good path into the future. After some considerations, I think this is possible with ASP.NET and here are my thoughts: · Create a framework within ASP.NET for kids programming. · Use existing editor. No extra compiler and intelligence work needed. · Using a subset of C# like a scripting language. Teaches data type, expression, statements, if/for/while/switch blocks and functions. Use existing classes but no class creation and OOP. · Linear rendering model. No complicated life cycle. · Bare-metal html with some MVC style helpers for widget creation; ASP.NET control is optional. I want to teach kids to understand something and avoid black boxes as much as possible. · Use SQL for CRUD with a helper class. Again, I want to teach understanding rather than black boxes. · Provide a template to encourage clean separation of concern. · Provide a conversion utility to convert the code that uses template to ASP.NET MVC. This will allow kids with AP Computer Science knowledge to step up to ASP.NET MVC. Let me know if you have thoughts or can help.

    Read the article

  • Behind ASP.NET MVC Mock Objects

    - by imran_ku07
       Introduction:           I think this sentence now become very familiar to ASP.NET MVC developers that "ASP.NET MVC is designed with testability in mind". But what ASP.NET MVC team did for making applications build with ASP.NET MVC become easily testable? Understanding this is also very important because it gives you some help when designing custom classes. So in this article i will discuss some abstract classes provided by ASP.NET MVC team for the various ASP.NET intrinsic objects, including HttpContext, HttpRequest, and HttpResponse for making these objects as testable. I will also discuss that why it is hard and difficult to test ASP.NET Web Forms.      Description:           Starting from Classic ASP to ASP.NET MVC, ASP.NET Intrinsic objects is extensively used in all form of web application. They provide information about Request, Response, Server, Application and so on. But ASP.NET MVC uses these intrinsic objects in some abstract manner. The reason for this abstraction is to make your application testable. So let see the abstraction.           As we know that ASP.NET MVC uses the same runtime engine as ASP.NET Web Form uses, therefore the first receiver of the request after IIS and aspnet_filter.dll is aspnet_isapi.dll. This will start the application domain. With the application domain up and running, ASP.NET does some initialization and after some initialization it will call Application_Start if it is defined. Then the normal HTTP pipeline event handlers will be executed including both HTTP Modules and global.asax event handlers. One of the HTTP Module is registered by ASP.NET MVC is UrlRoutingModule. The purpose of this module is to match a route defined in global.asax. Every matched route must have IRouteHandler. In default case this is MvcRouteHandler which is responsible for determining the HTTP Handler which returns MvcHandler (which is derived from IHttpHandler). In simple words, Route has MvcRouteHandler which returns MvcHandler which is the IHttpHandler of current request. In between HTTP pipeline events the handler of ASP.NET MVC, MvcHandler.ProcessRequest will be executed and shown as given below,          void IHttpHandler.ProcessRequest(HttpContext context)          {                    this.ProcessRequest(context);          }          protected virtual void ProcessRequest(HttpContext context)          {                    // HttpContextWrapper inherits from HttpContextBase                    HttpContextBase ctxBase = new HttpContextWrapper(context);                    this.ProcessRequest(ctxBase);          }          protected internal virtual void ProcessRequest(HttpContextBase ctxBase)          {                    . . .          }             HttpContextBase is the base class. HttpContextWrapper inherits from HttpContextBase, which is the parent class that include information about a single HTTP request. This is what ASP.NET MVC team did, just wrap old instrinsic HttpContext into HttpContextWrapper object and provide opportunity for other framework to provide their own implementation of HttpContextBase. For example           public class MockHttpContext : HttpContextBase          {                    . . .          }                     As you can see, it is very easy to create your own HttpContext. That's what did the third party mock frameworks like TypeMock, Moq, RhinoMocks, or NMock2 to provide their own implementation of ASP.NET instrinsic objects classes.           The key point to note here is the types of ASP.NET instrinsic objects. In ASP.NET Web Form and ASP.NET MVC. For example in ASP.NET Web Form the type of Request object is HttpRequest (which is sealed) and in ASP.NET MVC the type of Request object is HttpRequestBase. This is one of the reason that makes test in ASP.NET WebForm is difficult. because their is no base class and the HttpRequest class is sealed, therefore it cannot act as a base class to others. On the other side ASP.NET MVC always uses a base class to give a chance to third parties and unit test frameworks to create thier own implementation ASP.NET instrinsic object.           Therefore we can say that in ASP.NET MVC, instrinsic objects are of type base classes (for example HttpContextBase) .Actually these base classes had it's own implementation of same interface as the intrinsic objects it abstracts. It includes only virtual members which simply throws an exception. ASP.NET MVC also provides the corresponding wrapper classes (for example, HttpRequestWrapper) which provides a concrete implementation of the base classes in the form of ASP.NET intrinsic object. Other wrapper classes may be defined by third parties in the form of a mock object for testing purpose.           So we can say that a Request object in ASP.NET MVC may be HttpRequestWrapper or may be MockRequestWrapper(assuming that MockRequestWrapper class is used for testing purpose). Here is list of ASP.NET instrinsic and their implementation in ASP.NET MVC in the form of base and wrapper classes. Base Class Wrapper Class ASP.NET Intrinsic Object Description HttpApplicationStateBase HttpApplicationStateWrapper Application HttpApplicationStateBase abstracts the intrinsic Application object HttpBrowserCapabilitiesBase HttpBrowserCapabilitiesWrapper HttpBrowserCapabilities HttpBrowserCapabilitiesBase abstracts the HttpBrowserCapabilities class HttpCachePolicyBase HttpCachePolicyWrapper HttpCachePolicy HttpCachePolicyBase abstracts the HttpCachePolicy class HttpContextBase HttpContextWrapper HttpContext HttpContextBase abstracts the intrinsic HttpContext object HttpFileCollectionBase HttpFileCollectionWrapper HttpFileCollection HttpFileCollectionBase abstracts the HttpFileCollection class HttpPostedFileBase HttpPostedFileWrapper HttpPostedFile HttpPostedFileBase abstracts the HttpPostedFile class HttpRequestBase HttpRequestWrapper Request HttpRequestBase abstracts the intrinsic Request object HttpResponseBase HttpResponseWrapper Response HttpResponseBase abstracts the intrinsic Response object HttpServerUtilityBase HttpServerUtilityWrapper Server HttpServerUtilityBase abstracts the intrinsic Server object HttpSessionStateBase HttpSessionStateWrapper Session HttpSessionStateBase abstracts the intrinsic Session object HttpStaticObjectsCollectionBase HttpStaticObjectsCollectionWrapper HttpStaticObjectsCollection HttpStaticObjectsCollectionBase abstracts the HttpStaticObjectsCollection class      Summary:           ASP.NET MVC provides a set of abstract classes for ASP.NET instrinsic objects in the form of base classes, allowing someone to create their own implementation. In addition, ASP.NET MVC also provide set of concrete classes in the form of wrapper classes. This design really makes application easier to test and even application may replace concrete implementation with thier own implementation, which makes ASP.NET MVC very flexable.

    Read the article

  • .NET 3.5 Installation Problems in Windows 8

    - by Rick Strahl
    Windows 8 installs with .NET 4.5. A default installation of Windows 8 doesn't seem to include .NET 3.0 or 3.5, although .NET 2.0 does seem to be available by default (presumably because Windows has app dependencies on that). I ran into some pretty nasty compatibility issues regarding .NET 3.5 which I'll describe in this post. I'll preface this by saying that depending on how you install Windows 8 you may not run into these issues. In fact, it's probably a special case, but one that might be common with developer folks reading my blog. Specifically it's the install order that screwed things up for me -  installing Visual Studio before explicitly installing .NET 3.5 from Windows Features - in particular. If you install Visual Studio 2010 I highly recommend you install .NET 3.5 from Windows features BEFORE you install Visual Studio 2010 and save yourself the trouble I went through. So when I installed Windows 8, and then looked at the Windows Features to install after the fact in the Windows Feature dialog, I thought - .NET 3.5 - who needs it. I'd be happy to not have to install .NET 3.5, but unfortunately I found out quite a while after initial installation that one of my applications/tools (DevExpress's awesome CodeRush) depends on it and won't install without it. Enabling .NET 3.5 in Windows 8 If you want to run .NET 3.5 on Windows 8, don't download an installer - those installers don't work on Windows 8, and you don't need to do this because you can use the Windows Features dialog to enable .NET 3.5: And that *should* do the trick. If you do this before you install other apps that require .NET 3.5 and install a non-SP1 one version of it, you are going to have no problems. Unfortunately for me, even after I've installed the above, when I run the CodeRush installer I still get this lovely dialog: Now I double checked to see if .NET 3.5 is installed - it is, both for 32 bit and 64 bit. I went as far as creating a small .NET Console app and running it to verify that it actually runs. And it does… So naturally I thought the CodeRush installer is a little whacky. After some back and forth Alex Skorkin on Twitter pointed me in the right direction: He asked me to look in the registry for exact info on which version of .NET 3.5 is installed here: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDP where I found that .NET 3.5 SP1 was installed. This is the 64 bit key which looks all correct. However, when I looked under the 32 bit node I found: HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\NET Framework Setup\NDP\v3.5 Notice that the service pack number is set to 0, rather than 1 (which it was for the 64 bit install), which is what the installer requires. So to summarize: the 64 bit version is installed with SP1, the 32 bit version is not. Uhm, Ok… thanks for that! Easy to fix, you say - just install SP1. Nope, not so easy because the standalone installer doesn't work on Windows 8. I can't get either .NET 3.5 installer or the SP 1 installer to even launch. They simply start and hang (or exit immediately) without messages. I also tried to get Windows to update .NET 3.5 by checking for Windows Updates, which should pick up on the dated version of .NET 3.5 and pull down SP1, but that's also no go. Check for Updates doesn't bring down any updates for me yet. I'm sure at some random point in the future Windows will deem it necessary to update .NET 3.5 to SP1, but at this point it's not letting me coerce it to do it explicitly. How did this happen I'm not sure exactly whether this is the cause and effect, but I suspect the story goes like this: Installed Windows 8 without support for .NET 3.5 Installed Visual Studio 2010 which installs .NET 3.5 (no SP) I now had .NET 3.5 installed but without SP1. I then: Tried to install CodeRush - Error: .NET 3.5 SP1 required Enabled .NET 3.5 in Windows Features I figured enabling the .NET 3.5 Windows Features would do the trick. But still no go. Now I suspect Visual Studio installed the 32 bit version of .NET 3.5 on my machine and Windows Features detected the previous install and didn't reinstall it. This left the 32 bit install at least with no SP1 installed. How to Fix it My final solution was to completely uninstall .NET 3.5 *and* to reboot: Go to Windows Features Uncheck the .NET Framework 3.5 Restart Windows Go to Windows Features Check .NET Framework 3.5 and voila, I now have a proper installation of .NET 3.5. I tried this before but without the reboot step in between which did not work. Make sure you reboot between uninstalling and reinstalling .NET 3.5! More Problems The above fixed me right up, but in looking for a solution it seems that a lot of people are also having problems with .NET 3.5 installing properly from the Windows Features dialog. The problem there is that the feature wasn't properly loading from the installer disks or not downloading the proper components for updates. It turns out you can explicitly install Windows features using the DISM tool in Windows.dism.exe /online /enable-feature /featurename:NetFX3 /Source:f:\sources\sxs You can try this without the /Source flag first - which uses the hidden Windows installer files if you kept those. Otherwise insert the DVD or ISO and point at the path \sources\sxs path where the installer lives. This also gives you a little more information if something does go wrong.© Rick Strahl, West Wind Technologies, 2005-2012Posted in Windows  .NET   Tweet !function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0];if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src="//platform.twitter.com/widgets.js";fjs.parentNode.insertBefore(js,fjs);}}(document,"script","twitter-wjs"); (function() { var po = document.createElement('script'); po.type = 'text/javascript'; po.async = true; po.src = 'https://apis.google.com/js/plusone.js'; var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(po, s); })();

    Read the article

  • What are the definitive guidelines for custom Error Handling in ASP.NET MVC 3?

    - by RyanW
    The process of doing custom error handling in ASP.NET MVC (3 in this case) seems to be incredibly neglected. I've read through the various questions and answers here, on the web, help pages for various tools (like Elmah), but I feel like I've gone in a complete circle and still don't have the best solution. With your help, perhaps we can set a new standard approach for error handling. I'd like to keep things simple and not over-engineer this. Here are my goals: For Server errors/exceptions: Display debugging information in dev Display friendly error page in production Log errors and email them to administrator in production Return 500 HTTP Status Code For 404 Not Found errors: Display friendly error page Log errors and email them to administrator in production Return 404 HTTP Status Code Is there a way to meet these goals with ASP.NET MVC?

    Read the article

  • What are the benefits of Castle Monorail 3 over ASP.Net MVC?

    - by yorch
    I have been using Castle Monorail for some years now with great success, although I haven't bothered to update the version I'm using (2 or 3 year old). Now I'm making a decision on go to ASP.Net MVC 3 or update to the latest Castle version. I have been looking documentation on the newest version of Castle projects (specially Monorail), but there is really little or no info around (I may be wrong). Does someone knows what are the benefits/new features of version 3 over ASP.Net MVC3? Thanks!

    Read the article

  • Where have the Direct3D 11 tutorials on MSDN have gone?

    - by Cam Jackson
    I've had this tutorial bookmarked for ages. I've just decided to give DX11 a real go, so I've gone through that tutorial, but I can't find where the next one in the series is! There are no links from that page to either the next in the series, or back up to the table of contents that lists all of the tutorials. These are just companion tutorials to the samples that come with the SDK, but I find them very helpful. Searching MSDN from google and the MSDN Bing search box has turned up nothing, it's like they've removed all links to these tutorials, but the pages are still there if you have the URLs. Unfortunately, MSDN URLs are akin to youtube URLs, so I can't just guess the URL of the next tutorial. Anyone have any idea what happened to these tutorials, or how I can find the others?

    Read the article

< Previous Page | 4 5 6 7 8 9 10 11 12 13 14 15  | Next Page >