Cloud Foundry: Design and Architecture
Derek Collison discusses the goals, the design premises and patterns employed in creating the architecture of Cloud Foundry, VMware’s open source PaaS, unveiling internal architectural details.
The content has been bookmarked!
There was an error bookmarking this content! Please retry.
Posted by Jonathan Allen on Feb 22, 2012
The first beta of ASP.NET MVC 4 has recently been released with a “go-live” license. This means that even though the release is not yet complete, Microsoft is confident enough to allow it in production use. Enhancements include improvements to the Razor view engine, asynchronous support, WebSockets, and much more.
Razor View Engine
The default view engine for ASP.NET MVC is getting a couple of new features designed to reduce the amount of boilerplate code needed. HTML attributes starting with ~/ will now be automatically replaced with the application root, developers no longer need to use the Url.Content function. Another big time saver is conditional attributes. If the myClass variable in class="@myClass" is null, the entirely attribute is automatically removed for you.
Note: This feature is shared with ASP.NET Web Pages 2.
CSS and JavaScript Management
MVC 4 highly encourages developers to use bundling and minification to reduce the time it takes to deliver content to the browser. Instead of listing each and every file needed by the client, developers can instead use the ResolveBundleUrl function to capture everything in a given folder. Jon Galloway notes that this is especially helpful when updating common libraries such as jQuery.
Mobile Development
MVC 4 now includes jQuery Mobile in the standard mobile templates. These templates are used to build views that will be accessed via the Display Modes subsystem. While only the default (i.e. desktop) and mobile modes are registered by default, developers are free to add their own modes. Generally these would respond to user agent strings, but in theory you have a lot of flexibility when it comes to this.
Task Support for Asynchronous Controllers
Switching to an asynchronous pattern is so easy with MVC4 and C# 5 it is hard to imagine anyone continuing to write blocking style controller methods. Instead of returning an ActionResult, one simply returns an “async Task<ActionResult>”. Of course the underlying service calls will have to be updated to support await-style calls, but that too is an almost mechanical conversion that can be handed off to an intern or junior developer.
A nice touch for asynchronous controllers is the ability to support cancellation tokens. Instead of blindly aborting the thread, the entire call stack can participate in the process. The actual CancellationToken instance is supplied by the framework, developers just need to forward it to any service calls.
RDBMS to NoSQL: Managing the Transition
Troubleshoot Java/.NET performance while getting full visibility in production
Visual Studio vNext: ALM features for Agile Planning, Team Collaboration
Derek Collison discusses the goals, the design premises and patterns employed in creating the architecture of Cloud Foundry, VMware’s open source PaaS, unveiling internal architectural details.
Andrew Watson talks about the work of the OMG, where CORBA is alive and well (hint: in your car), UML and UML Profiles vs. custom Modeling languages, DDS and other middleware, and much more.
Sohil Shah discusses creating iPhone and Android enterprise mobile applications based on cloud services using the open source platform OpenMobster.
Paul Sanford presents the transformations supported by data throughout its life cycle, and how that can be better done with Splunk, an engine for monitoring and analyzing machine-generated data.
A common “best practice” for unit tests is to only write a one assertion in each test. I intend to question this advice by showing that multiple assertions per test are both necessary and beneficial.
John Rauser presents the architectural and technological evolution of Amazon retail websites starting with 1994 and ending with adopting Amazon Web Services.
Michael Stal discusses system architecture quality, how to avoid architectural erosion, how to deal with refactoring, and design principles for architecture evolution.
Every developer has had to integrate with another system, API or component. Tis article provides strategies to handle the change and for he separating system boundaries.
1 comment
Watch Thread Reply