Simone Chiaretta
Chrome 6 might break your Gmail (when behind proxies in corporate environments)
[UPDATE: There is a workaround]
This morning, following the release of Chrome 6, I decided to upgrade to the latest version.
But as soon as I tried going to Gmail I got the following error:
SSL connection error. Unable to make a secure connection to the server. This may be a problem with the server, or it may be requiring a client authentication certificate that you don't have.
Error 128 (net::ERR_SSL_UNSAFE_NEGOTIATION): The SSL renegotiation extension was missing from the secure handshake. For some sites, which are known to support the renegotiation extension, Chrome requires a more secure handshake to prevent a class of known attacks. The omission of this extension suggests that your connection was intercepted and manipulated in transit.
This happens because “starting with 6.0.453.1 Chrome began requiring the TLS renegotiation extension from a small number of sites (Gmail included). This extension is required to prevent TLS renegotiation attacks”. This means that if you use Gmail (or any other Google application, like Docs, Reader and so on) over HTTPS and you are behind a proxy that alters in some way the data passed (like MITM proxies), you will not be able to access Gmail any more.
This problem has been reported on Google Chrome forums and also in the issue tracker of Chromium, but has been marked as invalid because they are now trying to increase the security, implementing the renegotiation extension.
While this is a good thing, most companies are not always up to date with the latest technologies, and since this extension is standard since “just” 6 months, Google cannot expect everyone to have it implemented already.
What you should do if you have already installed and you get the SSL Connection Error?[UPDATE] After having commented on the Chromium bug, Adam Langley answered that if you manually specify a proxy, the check is disabled automatically. And if you have a transparent proxy (so no proxy configured in the options) you can disable the check using the command-line option: --allow-ssl-mitm-proxies.
Thank you Adam for also commenting here with the complete explanation of the problem.
The only thing you can do is revert Google Chrome back to version 5. Unfortunately this requires you to uninstall Chrome, and reinstall the old version using the offline installer that you can download from Google site at the following address: http://dl.google.com/chrome/install/375.55/chrome_installer.exe
Unfortunately uninstalling Chrome means you loose all your stored passwords and some other things because a Chrome 6 profile cannot be read from Chrome 5. So if you are unsure, do a backup of your profile folder before trying to update to Chrome 6.
I hope Chrome either allow users to “ignore” some errors, like they do when the certificate is not valid, and that in meantime all MITM proxies get updated to support the renegotiation extension (and all IT guys install the updated version).
Tags: Chrome,MITM,proxyIs Silverlight becoming a niche technology?
A lot of reactions started on Twitter this morning following the publication of the article titled “The Future of Silverlight” on the Silverlight Team Blog. One that caught my attention was written by Hadi Hariri:
After a few messages I realized that he was talking about Silverlight.
The problems Silverlight addressesThe official announcement says between the lines:
… Silverlight enables applications that deliver the kinds of rich experiences users want. We group these into three broad categories: premium media experiences, consumer apps and games, and business/enterprise apps.
Even in their own statement, they acknowledge that Silverlight is not for building web apps, but is to address very specific features that you don’t have in HTML/CSS/JS.
Most of the features of Silverlight are already included in HTMLBut if you take a closer look to the features they list, and you compare them with what HTML (where with HTML I mean the sum of HTML, JavaScript and CSS) can do, you realize that, with the exception the adaptive streaming and other advanced video features, everything can be implemented in HTML: there is HW-accelerated canvas in HTML5 to fulfill the need of “power” of web games, there are already dozens of JavaScript UI control libraries, like jQuery UI to helps you build rich and “desktop-looking” web applications with very little effort, there is local storage and even a local database to store information locally in the browser, there are web workers to keep the application responsive during heavy computations, and much more will come with HTML5.
Some might argue that, even then, Silverlight has a more mature IDE and most developers don’t have a clue about programming in JavaScript and writing HTML+CSS. This only partially true: you reuse your C# skills and your knowledge of the CLR, but you need to learn all the pattern and best practices specific to this new paradigm, like MVVM, you have to deal with the “all is async” problem, and you probably don’t want to just drag and drop SL controls onto the developer surface, so even the IDE helps just a little here. And looking at it the other side of the coin, I’m pretty sure JavaScript oriented IDE and even more commercial control vendors will start making “d&d-able” controls to make JavaScript development as easy as desktop development.
Silverlight is more than the browserThe article finishes with that emphasis: “Silverlight is much more than a browser technology”. Sure it allows you to build “out of the browser” apps, even desktop apps, and now Windows Phone 7 apps. I think this is a great advantage for developers that build desktop apps, but I just don’t see Silverlight as a web application technology.
What is Silverlight really for?If you asked me where I would use Silverlight I’d answer:
- To build desktop applications
- To build Windows Phone 7 native applications
- And to build islands of interactivity of web applications, where the current “simpler and more standard” technologies are not enough, like in media applications.
And I think this is also how Microsoft should market it: a technology that allows you to create rich “web-looking” applications on the desktop, complex video components for the web , and to reuse the same skills to build native mobile applications for Windows Phone 7. But they should stop comparing Silverlight to HTML5.
What are your opinions on this topic? Please share them on the comments.
Tags: Silverlight,HTML5,Microsoft,commentary,JavaScriptIs the Web really dead? No way!
Last week Wired published a long article stating that the Web (as in the thing you get through the browser) is dead, while the Internet is evolving.
I think they are totally wrong for a few reasons:
- They prove their statement reading in the stats what they wanted to read: they compare the proportion of traffic instead of the total amount and this leads to the wrong conclusions
- They say the web is being taken over by peer-to-peer and video, based, again, on the bandwidth used
- Most our time is spent on web sites
Let’s start from the first reason I think they are wrong: they want to prove their statement with a chart that compares the proportion of the traffic instead of the total traffic.
As the title of the chart says, this is the proportion of the traffic (measured in bandwidth) of all internet traffic. What this means is just that now 23% of the traffic is used by the Web, while in 2000, it was around 50%. According to Cisco, the source used by Wired for its “proportion” chart, the total traffic in the same period grew from nearly half a exabyte (500.000 terabytes) to 7 exabytes. And 50% of 0,5 is lower than 23% of 7.
BoingBoing had an excellent post commenting the chart (Is the web really dead?) and they came up with the following chart.
And as you can seem, the traffic of the “Web” is still growing. Just it’s being joined by other way of using the pipes, video and file-sharing.
Video and peer-to-peer are taking over the webThis page, including images and layout has a size of probably 200-300Kb, and the mere post is probably less than 100Kb. How much do you think the size of this post would have been if I had delivered it via a video? I think it would have been around 5-10Mb: at least 50 times more. If the chart was on the amount of information provided instead of the bandwidth used to deliver it, the statement of Wired would have been even less true.
We spend most of our time on the webThe “Web is dead” is probably true if we evaluate how we use the mobile: most of the web sites don’t work on the tiny display of smartphones. So we are forced to use Apps: there is Facebook for iPhone, Twitter for iPhone, there are dozens of newsfeed readers. But on our desktop computer, we are using the browser: all the social network are standard web sites, we buy books and electronics using web sites, we collaborate on opensource projects using web sites, we book flight using web sites, we read most of the blog post on a web site (either the original one or via google reader).
Sure thing, the web is evolving: it’s not just Geocities pages about kittens. It’s more structured information, it’s more e-commerce, it’s more about interaction between people, it’s more about web applications. Well, isn’t this what we used to call Web2.0?
I don’t think Web3.0 will be the dead of the web. Still not sure what it will be, but definitely not its dead.
Looking aheadThis post has grown longer than I originally thought. So thank you for reaching the end, and I’d be pleased if you could comment writing your ideas on the matter.
And last thought of the post: this article clearly shows that Wired is not unlike the other “internet” magazines. Just sensationalism and half-told truths.
Tags: wired,commentary,web,internet,trends,web2.0,web3.0Only parameterless constructors and initializers are supported in LINQ to Entities
Back from the holiday an nice surprise was awaiting for me: I’ve to “finalize” (as in make it work) an application that someone that left the company developed more than one year ago. Among the other problems one real surprised me: the project is built with .NET 3.5 and uses Entity Framework v1 and in some the queries failed with the following strange error:
Only parameterless constructors and initializers are supported in LINQ to Entities.
Just to be clear, it was a runtime error, not a build failure.
The queries that were failing were all, more or less, like the following one:
var photo = (from p in context.PhotoSet where p.num == new Guid(id) && p.LangId == langId select p).FirstOrDefault();The code seemed perfect to me: I’m looking for a Photo whose id (a Guid) is like the one provided.
Looking around the web I found a blog post by Muhammad Mosa, “LINQ to Entities, what is not supported?”, which explains that you cannot instantiate new objects through a constructor with parameters (just as the exception says pretty clearly). Also Julie “Ms. EF” Lerman treated this problem in a blog post titled “A few things you can't do with EF queries which you won't find out until runtime”. But all the samples were about custom objects or complex objects like collections being instantiated with values coming from the query, but in my case I was creating a simple .NET core object with a string coming from outside of the query. So I was still not understanding why my query was failing. But it turned out that also creating the Guid inside the LINQ query is not allowed. So the solution for my problem is:
Guid guid = new Guid(id); var photo = (from p in context.PhotoSet where p.num == guid && p.LangId == langId select p).FirstOrDefault();What I did is just instantiating the Guid outside of the LINQ query and use the variable inside LINQ.
I had this problem with EF1, but given the explanation provided by the team, I guess you will encounter this issue (which is not a bug but is “by design”) in EF4 as well. Which might make sense if you use parameters coming from inside the query, but not if you are creating an object with variables that have nothing to do with LINQ query itself. Can anyone comment on this?
This experience gave me another good reason to continue using NHibernate :)
Tags: Entity Framework,bug13 books for a .NET Summer reading list
As last year, before going on holiday I’m list some of the books that are in my reading list. It’s not entirely about .NET book, but will also cover other languages not related with .NET development at all, like Scala or Arduino.
JavaScript and jQueryI think JavaScript is still the most unknown language among all the ones used to write web applications: mostly due to the fact that it lives in the limbo between developer and designer.
JavaScript: The Good PartsIt seems incredible, but I never read this “must have” book about the man that invented JavaScript. And if a guilty of the same error, you have to do it: you will learn that JavaScript, even when not abstracted away by jQuery, is fun language to work with.
jQuery in Action, second editionThe first edition was in last year edition of this same list, and now the new edition is out: the same goodness of the previous edition, but talking about jQuery 1.4. Another must read book if you are into jQuery.
jQuery UI 1.7: The User Interface Library for jQueryAnother book that I have in my reading list is about jQuery UI. The online documentation is already pretty comprehensive, but having all the samples and explanations of all the options available is still very valuable. One little problem of this book is that it’s still about jQuery UI 1.7.
Web development on .NETASP.NET MVC 2 is out since a few months already and almost all the books that came out last year have a second edition treating ASP.NET MVC 2.
ASP.NET MVC 2 in ActionAs last year, my ASP.NET MVC book of choice is ASP.NET MVC 2 in Action. The reason is that with this book not only you learn about the framework itself, but also about how to develop a real-world web application, with NHibernate, IoC and all the best practices.
If you are looking at learning “just” ASP.NET MVC probably you might want to have a look at Professional ASP.NET MVC 2 or Pro ASP.NET MVC 2 Framework: even if they lack the ALT.NET feeling of the “in Action” book, they cover the details of framework pretty well.
Shameless plug: unfortunately there was no “Beginning ASP.NET MVC v2”, but I still wrote this short eBook to condensate all the new features of MVC 2 for the developers that already knew all the concepts behind the framework.
Beginning ASP.NET SecurityIf you are developing web applications and don’t take security seriously you should not be doing this job, seriously. This book contains all the information needed to get up to speed quickly on web security: XSS, CSRF, validation and more. It all boils to down to “Trust None”.
NHibernateOne of the reason I decided to organize the NHDay is because I don’t know NHibernate as much as I would like. And here are two books that I really recommend.
NHibernate in ActionIt was in the list also last year, but I think I’ll keep it in my reading list again: this is the real Bible of NHibernate and if it refers to an old version of NHibernate (1.2 if I’m not mistaken) most of the concepts are still the same. And if you come to the NHDay you might win a copy of this book, or an hard discount to buy it, since Manning is going to be one of the sponsors of the event.
NHibernate 2.x Beginner's GuideThe “bible” is still about version 1.2, but this book covers the latest version of NHibernate, and has a very nice approach explaining what an ORM is about and how to use the more advanced features of NH like caching and validators.
Other .NET related books Brownfield Application Development in .NetMost of us are not lucky enough to always develop green-field applications, and even those who do it, find themselves into brownfield development soon. This is about all the processes you have to do when you enter as an external into a development team and you want to take it out of the “pain” zone: how to setup the source control properly, how to setup CI, how introduce testing, and so on. I really loved reading this book, and I think it’s a must read book for everyone that is interested in working better.
IronRuby in ActionDespite having been unfunded by Microsoft, IronRuby is a very good mean to start learning Ruby while staying in the comfort zone of the .NET environment. Ivan started writing the book almost 3 years ago, and he was also involved in the development of the language itself. And furthermore, this is the only book about IronRuby you can get.As Steve Bohlen points out in the comment, there is also another book about IronRuby around: IronRuby Unleashed
iPhone/iPad development Professional iPhone Programming with MonoTouch and .NET/C#I haven’t started reading it yet, but this is probably the next book I’m going to open, and probably taking with me on holiday. iPhone/iPad development is definitely something I want to do more, and Objective-C seems a bit too much for me, even if I already developed a small app last year.
Even more ALT Programming in Scala: A Comprehensive Step-by-step GuideEverybody talks about Scala, Keyvan felt in love with it, Ivan stopped doing .NET to work with it: there must be something good in it. So I’d better find it out with a good book.
Getting Started with ArduinoI bought an Arduino kit at the beginning of the summer, but haven’t played with it yet. Hopefully when I finally completely settled up in my new home I can try hacking something up, and maybe build some cool twittering basil watering system for my addiction for pesto.
Will I really read them all?Will I really be able to read all these books? Hopefully there will be no other changing jobs and moving countries in the next years. I hope you found my recommendations useful.
Tags: arduino,ironruby,aspnetmvc,jquery,scala,javascriptAnnouncing NHDay final Agenda
During the month of July we ran the public voting for the agenda of the second track of the NHDay that will happen in October in Bologna.
So, without further ado, here is the agenda of the second track as selected by the attendees:
- From relational data to ObjectSpaces – Andrea Saltarello
- Loosely Coupled Complexity - Unleash the power of your domain model, using Event Sourcing and CQRS - Alberto Brandolini
- Real World Application Development with NHibernate, FluentNHibernate and Castle Windsor - Chris Canal
- Model-first development with FluentNHibernate - Rob Ashton
- Intercepting NHibernate – The DotDotNet crew
The agenda for the main track features Ayende and will be all about NHibernate.
Don’t miss the opportunity to attend to a free event on NHibernate with Ayende: if you haven’t already registered, you can still register: there are around 20 seats left.
Tags: nhday,nhibernate,ugialtnetIs IronRuby being un-funded just the tip of an iceberg?
Today when I woke up and started skimming my twitter feed, I was stuck by a flood of comments about IronRuby being somehow discontinued. Not really killed, but, as Jimmy Schementi says in his post that announces his change of job, moved out of the pool of opensource projects that Microsoft is directly funding. Justin Etheredge already commented on what it means for IronRuby itself, but I want to analyze the fact from an another angle.
Maybe I'm just paranoid, and unfunding IronRuby is just... unfunding IronRuby, but the facts are leading me to think (and might lead also other people to think the same) that Microsoft is going back 2-3 years in time, back investing in tools for Morts and undoing all the good they did to push OpenSource as a viable option.
In the next lines I'm going to tell you what led me to these conclusions.
Back to MortsIn the last month Microsoft released the WebMatrix, a new platform for building web applications, targeted to junior/hobbyist developers. Then they announced Visual Studio 2010 LightSwitch edition, something similar to WebMatrix but to produce Silverlight applications with extensive use of drag&drop and wizards (you can read more about this on Introducing LightSwitch). And finally they also announced Microsoft.Data.dll, a PHP-like data access layer, with lots of sql statements strings mixed with the code, still targeted to the so-called "Morts" (or even pre-morts).
And together with the silent unfunding of IronRuby, this leads me to think that after a few years of trying to make people developer better software, they are back in the business of building tools to help people that have no/little background build applications "quick and dirty".
I hope this is not their new strategy because, while this is good for Microsoft because more developers using .NET means more income, helping Morts build "enterprise" applications is just going to harm the IT market at whole: "good" developers that build well-crafted, easy to maintain and evolve applications will have to compete with these hobbyists that charge 1/4th of the price to build crap. And since most of the clients care only about the cost, we will end up with the IT marked collapsing, even more than now.
OSS is something you cannot trustBut even worse, people might think that OpenSource projects, even the ones developed inside the big corporations like Microsoft, cannot be trusted because they suffer the same problems of the "normal" opensource projects: the main developer can loose interest in it, and the project will slowly die.
What will happen now to people that heavily depend on IronRuby and that fully embraced it because it was "supported" by Microsoft? But a bigger question is: what if Microsoft will start removing resources out from ASP.NET MVC, Ajax Library, MEF, and the still to be released Orchard? Can developers and companies invest in the other opensource projects from Microsoft?
Microsoft made many good steps in the right direction, but with this I think they went back to their original position about OSS.
What do you think? Am I just paranoid? Or do you also think this more than just un-funding IronRuby? I'd love to be proven wrong and to hear your opinions.
altnet, IronRuby, opensource, opinion, Software DevelopmentASP.NET MVC 3 Preview 1 is out
Still not officially announced by anybody inside Microsoft, but quietly this morning the first preview of ASP.NET MVC 3 appeared on Microsoft Download.
And it’s exactly what everyone was expecting after last month’s announcement of Scott Guthrie of Razor, the new view engine for ASP.NET MVC.
What else does this new version bring to the table?
First of all it takes a dependency on .NET4. It means that you cannot be able to use it unless you migrate you applications to the latest version of the .NET framework (and if the story repeats itself, with the RTM coming out next year, this won’t be a big deal). And it also means that finally the framework can use all the cool features of C#3, like the dynamic keyword and the new features of .NET4 like the new data annotation’s attributes
- Razor: already announced a few weeks ago by ScottGu, it’s a new view engine that tries to make it easier to mix code and HTML
- Dynamic View and ViewModel: now you will be able to use “dynamic” view model and pass them to a view, without using the ugly hashtable approach. At the end of the day it’s still the same thing (no compile-time checking) but at least you don’t see all that ugly “magic strings” around
- Global Filters: in ASP.NET 2, if you need to apply a filter to all your controllers you have to apply it to you own base controller, and have all your controller inherit from it (actually you could also apply the same attribute to all your controllers if you like writing lot of repetitive code). Now you can just register the global filters in the application startup, just like you do now with the modelbinders or view engines and so on
- Dependency Injection support: this is probably the most important feature introduced with this release: the ability to use your favorite IoC Container (using the Common Service Locator) to create controllers, factories, views, filters and so on. Brad Wilson has a great series of posts about that.
It was just a very quick recap: I’ll follow-up with a more detailed post in the next days.
Now, run and download the preview and play with it.
Tags: aspnetmvc,aspnetmvc3,razor,IoC7 hand-picked posts from CodeClimber (aka the 7 Link Challenge)
A few days ago, Darren Rowse from ProBlogger stated a blogging challenge: The 7 Link Challenge. Basically it’s about picking 7 posts that fit into 7 different “themes”. Without further ado, here they are. Sometimes I’ll break the rule and will link to 2 posts per category, but, after all, rules are made to be broken, aren’t they?
- My first Post – I wrote my first post in October 2006. It was titled Subtext Halloween. Actually this is a post I previously posted in my Italian blog, together a few others before launching the “new” blog in the proper way.
- The post I enjoyed writing the most - “My ASP.NET MVC stack and why I chose it” – After a lot of time doing kind-of team management and maintaining of old applications, last October I finally had the chance to work a green-field application with ASP.NET MVC, jQuery, IoC and applying all the best practices I had been talking and writing for so long.
- A post which had a great discussion – “Why SketchFlow is not a mockup software” and “ASP.NET MVC brings FUN back inside web development, on .NET”. The first because it had many people I respect and the “owners” of the products being discussed commenting on the post, with great insights on the reasons behind why things are in certain way. And the second because it was nice to read different opinions on the first versions of ASP.NET MVC, when people were still thinking the new framework was too much work compared to WebForms. Actually also the post “Do you wanna be the Picasso of programming? First learn the rules, and only after break them” had a great discussion about when and how to be strict applying the best practices for good design.
If I take into account the number of comments only, probably the post with the most comments is “So Long Avanade, and Thanks for All the Fish”, where I announced my new job and my relocation to a new country. But they are mostly “congratulations”, so don’t qualify for a “great discussion” . Part of the reasons I don’t get 200-300 comments on posts is because I decided to auto-closing comments 2 months after a post is published. Probably I’ll change this policy in the future. - A post on someone else’s blog that you wish you’d written - “Think before you bind” and the follow-up “Easy And Safe Model Binding In ASP.NET MVC” by Justin Etheredge. That topic is still relevant even with the latest version of ASP.NET MVC, and the two post show that you always have to think carefully about the consequences of what happens when you use the “auto-magical” features of a framework: in this case, you could be easily hacked.
- A post with a title I am proud of - “How to make a Gmail-like loading indicator with ASP.NET Ajax” – It was still in the pre-twitter era, but I guess this is the kind of title that would get attention. And not so surprisingly, it’s my second most popular post.
- A post that you wish more people had read - “13 ASP.NET MVC extensibility points you have to know” – I think that the extensibility story is one of the best feature of ASP.NET MVC. I think this is a must read for everyone that is working with it. Go and read it NOW!
- My most helpful/visited post - “How to refresh an UpdatePanel from JavaScript” - This post written June 2007 is about something that should have been trivial, but it wasn’t. And surprisingly still generates 7-8% of my visits. Which shows 2 things: there are still a lot of people that are using UpdatePanel, and that abstractions are fine as long as you don’t need to do something they were not planned for.
I’m not going to nominate someone else to do the same, but it would be fun to see other .NET bloggers joining that “challenge”.
Tags: posts,problogger,7links,aspnetmvcHow to edit very old posts with Windows Live Writer
One day you find a link is broken in a post you wrote 4 years ago about a Halloween pumpkin carved with the Subtext logo, and you want to edit it. But since then you wrote more than 600 blog posts. How can you do it?
Your current optionsYou have two options:
- you use the rich text editor of your blogging platform, but then you will not have all the nice plugins and preview of WLW
- you open the post for editing using Windows Live Writer and you download all your latest 1000 posts and edit just the one you need (and if you are still using WLW Wave 3 if the post is after the 500th position you cannot even open it)
As you see there are really no an options.
I tried sending emails to the WLW team with my problem and the solution they came up with was just to add the possibility to download “all” the posts, which IMHO is pretty inefficient (you have to download all your posts just to edit one of them).
Fortunately a friend of mine working at Microsoft had the same problem and instead of just emailing the team decided to write a “plugin” to make it possible to edit a post just by having its post id (to be entirely true, it’s not a plugin but a url handler and an executable that calls some internal WLW API). Without further ado, here are the steps.
Download and install the pluginJust download the plugin and install it. If you read Italian you can also have a look at the download page of my friend’s blog for updates. Since it’s not a “real” plugin, you will not find anything in the plugins list in WLW, so don’t panic.
Edit your old postOnce installed the plugin you can edit your post just by finding the id of your post and typing in the address bar of your browser a Uri with a custom scheme “wlw”, for example:
wlw://example.com/?postid=yourPostId
Once you hit enter, a window will popup, downloading the post and opening it into WLW for you to edit.

Big thanks to Paperino for making that available to all of us, and look forward to a support for this in the admin of Subtext.
Download the plugin: WLW Post Downloader Plugin
Tags: windows live writer,blogSubtext vNext: which features would you like and on which framework?
Over the last month we released 2 versions of Subtext:
- Subtext 2.5, with a few amazing features like full-text search powered by Lucene.net, an improved admin dashboard, an upgrader tool and tons of code refactoring
- Subtext 2.5.1 with some urgent bug fixes
Now we are looking ahead for the next version (Subtext 2.6) which will mainly address the pains of some big blog sites like UGIdotNET and GeeksWithBlogs: with the current version it’s nearly impossible to manage the amount of blogs they have on their site and we will try to make that easier for them to do so. And on our plan there is also the upgrade of the rich text editor to CKEditor 3.
But we are still undecided whether to stay on .NET 3.5 or to upgrade to .NET 4.
Upgrading to .NET 4 which will enable us to take advantage of SQL CE 4 to provide an embedded database option that runs on medium trust, Razor for building skins in the future and using MEF for our plugin architecture.
So, without further ado, please take a second to answer to the following simple question: Which framework should Subtext vNext target/support? (if the form below doesn’t seem like working, please vote directly using the link)
And if you have other feature request, please feel free to comment on this blog post.
Tags: subtextWelcome to the WebMatrix, and my thoughts about it
When I saw the Gu writing 3 posts in a row about new technologies/products (IIS 7.5 Express, SQL Server CE 4 and Razor view engine) I knew something big was about to come. And in fact yesterday he announced the WebMatrix, a new web development stack that combines the 3 products above plus a new super-easy to use web development IDE and a new syntax for developing quick websites, called ASP.NET Web Pages.
The WebMatrixFirst let’s share the official announcement:
WebMatrix includes a complete Web development stack that integrates a Web server (IIS Developer Express), database (Microsoft SQL Server Compact 4.0), programming model (ASP.NET Web pages with Razor syntax), and a tool (WebMatrix Beta) into a seamless experience. You can use WebMatrix to streamline the way you create an ASP.NET Web site from templates, or by starting a new Web site by using the world’s most popular free and open source (ASP.NET or PHP) apps like DotNetNuke, Umbraco, WordPress, or Joomla!. With WebMatrix you can code your Web sites, customize them, optimize them for good search engine ranking, test them, and deploy them to an Internet hosting company, all through the tool.
Learn more about WebMatrix through:
- What is WebMatrix?
- Investigate the top 10 features of WebMatrix.
- Download WebMatrix Beta.
- More about IIS Developer Express.
- More about Microsoft SQL Server Compact 4.0.
For additional resources, visit:
- Learn more about WebMatrix Beta. More resources, links to forums and feedback channels.
- Visit the forums on the IIS Web site or the ASP.NET Web site.
- File a bug or suggestion on WebMatrix Beta.
- Learn to program the Web using ASP.NET Web pages with Razor syntax.
- Download applications with WebMatrix and the Web Application Gallery.
- Review the FAQs for Open Source and Free Web applications.
Also available is a nice 200 pages eBook about the Razor syntax and the ASP.NET WebPages: ASP.NET Web Pages using the Razor syntax.
And finally, make sure to read the long and super-complete blog post by ScottGu, Introducing WebMatrix and ScottHa post with a detailed step by step example of WebMatrix and with links to more documentation.
Before moving on, one thing I want to make very clear to avoid confusion is that, while some parts of the WebMatrix stack are very interesting for professional developers (IIS Dev Express, Razor and SQL CE 4), all the rest (the IDE, ASP.NET WebPages) is targeted to hobbyists developers, that wants to quickly write their own website and that don’t need to build complex applications, or also people that want to make their own Subtext skin by modifying a default skin.
If you are a professional developer and are wondering how all these new things relate to WebForms and ASP.NET MVC, David Ebbo wrote an interesting post explaining how WebMatrix, Razor, ASP.NET Web Pages and MVC fit together.
Now my thoughts on itWhereas I’m pretty excited by Razor, I’ve to say that I’ve mixed feelings about the WebMatrix IDE and ASP.NET WebPages: they lower the bars for new developers that want to start building their personal web sites on the MS stack, but doing so they also promote “bad” programming practices. Probably people that want to build their quick site to publish all their runs don’t care about unit testing, SOC and so on, but still seeing a SQL statement in the the “view” feels bad. But again, I’m not the target of this platform.
What I think will be important is the migration story from this PHP-like way of developing apps to a more professional one if the developers decides he/she wants to go that route.
Tags: webmatrix,razor,IIS DevSessions’ voting for NHibernate Day is open
In October the First European NHibernate Day will be held in Bologna and there will be two tracks:
- Advanced NH with Ayende and Steve Strong
- Generic ORM, for which we had an open call for speakers
Nine sessions have been proposed, but we have room only for 5 of them: today we are opening the votes to decided which of 9 sessions will be presented at the NHDay.
To vote please rank the sessions in order of preference (1 is the one you definitely want to see, and 9 the one you totally don’t care about).
The 220 seats are not all gone, we still have seats available. If you are using NHibernate this is an opportunity not to miss: go and register for the NHDay.
If you cannot see the voting form, go and vote for the sessions on the external poll.
The poll will be open till the end of July.
Tags: nhibernate,nhday,votingJust released: Subtext 2.5.1 release notes
After a long year, 3 weeks ago we released Subtext version 2.5. After the release we found some quite high-priority bug and so now today Subtext 2.5.1 has been released, which fixes the following bugs:
- 222: Wrong Url for category list
- 221: Category archive pages are empty
- 225: Skins with codeblocks don't raise a 404 error when the page is missing
- 233: HttpException when viewing Skins admin in medium trust
- 229: Image resizing in galleries does not work
- 209: Setup should detect problems in the installation
If you installed Subtext 2.5, go and download this bug-fix release, if you are still on a previous version, 2.5.1 is a pretty solid release, hopefully all the critical bugs have been fixed, so go and upgrade to this new version and take benefit of the new feature we introduced in Subtext 2.5.
Subtext, subtextAt the Umbraco CodeGarden: Slides and Demos of my MVC-Preconf talks
I'm here in Copenhagen at the 6th Umbraco CodeGarden "festival" and currently chilling in the nice garden while resting between the talks of the fist day.
First of all I want to say "THANK YOU!!" to Niels Hartvig for inviting me to talk to the event, and for setting up what I think is the best conference I attended ever. No, no... I'm not just sucking up... this event is really great: great food, great community, great amusements, a great channel tour and side activities... as they said at the keynote: it's more of a festival rather then a normal developer conference.
Then, since many people asked, I want to give you the links to download the slides and demo of my talks
ASP.NET MVC ExtensibilityThis talks I went through all the main extensibility points and explain how to leverage the main ones. I published the slides on SlideShare, but you can also download them, together with the demos:
ASP.NET MVC ExtensibilityView more presentations from Simone Chiaretta.- Slide: http://bit.ly/mvcextppt
- Demo: http://bit.ly/mvcextsample
And if you attended, please consider rating my asp.net mvc extensibility talk.
The ViewModel PatterIn the presentation I explained why you need a separate model for your view, and how to make it easier to adopt this approach using AutoMapper. I published the slides on SlideShare, but you can also download them, together with the demos:
The ViewModel patternView more presentations from Simone Chiaretta.- Slide: http://bit.ly/mvcvmppt
- Demo: http://bit.ly/mvcvmsample
And if you attended, please consider rating my view model pattern talk.
ASP.NET MVC, umbraco, codegardenSpeaking about ASP.NET MVC Extensibility at the Umbraco CodeGarden10
Next week I’ll be speaking about ASP.NET MVC Extensibility at the MVC pre-conference during annual Umbraco CodeGarden conference in Copenhagen starting next June 23rd.
The presentation will be split in the two parts (just before and just after lunch) and it will cover the most of the main extensibility points of ASP.NET MVC which I covered in my most popular post: 13 ASP.NET MVC extensibility points you have to know. And I will also talk about the new extensibility points introduced in ASP.NET MVC 2, like Validation Rules and custom templates (which I covered in my Wrox Blox about ASP.NET MVC 2).
There will also be an Hands-On Lab, so come prepared and bring your laptop.
I’ll not be the only one talking during the MVC pre-conference: Jon Galloway will hold its famous day-long MVC bootcamp and Steve Sanderson will talk about advanced ASP.NET MVC, BDD-TDD, and Web Security.
If you are interested in the topics I think there are still some seats available: you can still buy them and get a 3 days event in an awesome venue, with great food and community events.
Now that the event is finished, I just published slides and demos of both my MVC Extensibility and ViewModel talks online.
Tags: aspnetmvc,umbraco,codegarden,extensibility ASP.NET MVC, aspnetmvc, codegarden, codegarden, extensibility, umbracoRegistration to NHibernate Day opens at 3:15pm CET
Today the registration to the first European NHibernate Day opens, at 3:15pm CET (2:15pm in London).
We setup a countdown on the NHDay.eu website that will redirect you to the registration page at the precise moment the registration opens. But remember that there are only 220 seats available, and last time we finished them all in less than one day.
If you are not decided yet, here are some facts that can help you decide:
- the event is donation based, so no fixed entry fee.
- Ayende and Steve Strong will talk about advanced topics in the main track
- Ayende will speak for another hour after the end of the event, about … surprise.
- We already have 7 very interesting proposals for the secondary track, with speakers like Rob Ashton, Chris Canal and Andrea Saltarello, and they will all be speaking in English.
- The event is held in a beautiful hotel just outside Bologna, and attendees will have a special discount when booking for a room.
- Bologna is just one hour away from the beautiful Adriatic Sea, and it’s a great opportunity to enjoy the sea without the usual summer crowd.
What’s new in Subtext 2.5: full-text search, related posts and more
In Subtext 2.5 we changed the internal search provider from the “like %term%” SQL based one to a more mature and powerful one powered by Lucene.net. I wrote about how Lucene.net is implemented inside Subtext, but it didn’t show the benefits for the users. In this post I’m explaining the visible features of the full-text search.
There are 4 places where the new Lucene.net based search engine has its effect:
- Full-text search
- Related links
- More Results for the search
- OpenSearch provider
The first and most obvious place where the new search provider is available is the search result page.
Just type the search keywords in the box and they will be joined with the AND operators and passed to the search engine that will return the list of all matching posts, in order of relevance. The keywords will be searched in the title, the body and in the tags of the post.
For example, if you search for ASP.NET MVC on my blog you will find all the posts that talk about ASP.NET MVC.
More results for the searchThe main reason why I decided to include Lucene.net into Subtext is that I wanted to show the readers that come from search engines to find more posts related to their search.
Now if a reader is coming from a search engine, it will find a box that shows other posts that matches the same search.
For example, if you search for “ninject asp.net mvc” on Google, the 2nd or 3rd result is usually my post on how to use Ninject with ASP.NET MVC. If click on the link from the Google search result you will see the new “More Results” box on the top of the page.
This list of posts is retrieved by searching on the full-text index for the same keywords the user used on the search engine.
Related PostsIf you don’t come from a search engine but from a link on twitter or from a link from another site there are no keywords to use. But Lucene.net comes to help since it provides a very useful Similarity plugin which searches the index for documents that are similar to the one selected, using a pretty complex algorithm. Instead of adding them at the top, the related posts are listed the end of each post.
For example, if you go to my post about Ninject on ASP.NET MVC, you can easily find other posts on the same topics.
OpenSearch Provider
The last feature that is related to the search engine is the OpenSearch Provider which allows searching directly on the blog from the search engine box in the toolbar of your browser. For example on Firefox the arrows of the search engines dropdown list will glow in azure, and you will see “Add CodeClimber” if you open the dropdown list. And you will later be able to search on CodeClimber directly from your browser.
First of all you have to install the latest Subtext, version 2.5. And then customize your skin. But I’ll talk about how to do it in a future post.
Tags: Subtext,lucene.net,searchSubtext 2.5 is released!
UPDATE: There is a bug-fix version available: read Subtext 2.5.1 release notes.
After more then one year since last release, we are happy to announce that the new version of Subtext, number 2.5, has just been released.
The main features are the new dashboard, featuring the Ayende’s formula for blog post popularity, and a improved site-wide search based on Lucene.net. If you are interested you can also read how the search engine has been implemented using Lucene.net.
Lots of improvements have been made to the codebase of Subtext for this release:
- Code reorganization and reduced number of assemblies
- Dependency Injection used extensively throughout the codebase: might seem trivial at first, but think that most of the code for Subtext’s core was still the one coming from .Text more than 7 years ago
- Replaced the regex based url handling with the ASP.NET Routing
- Improved skinning, with self-contained skins
This is such a big change compared to the previous version that we created an upgrader tool in order to help making the upgrade. And also published a video that explains how to do the upgrade to Subtext 2.5.
For more details read the official announcement by Phil: Subtext 2.5 Released!
Now, go grab the latest version of Subtext and let us know what you think.
Update: We found a few bugs: we will release a 2.5.1 version in a few days. Sorry for the problem
Technorati Tag: Subtext,lucene.net


