Fabrice's weblog

Tools and Source

News

My .NET Toolbox
An error occured. See the script errors signaled by your web browser.
No tools selected yet
.NET tools by SharpToolbox.com

Read sample chapters or buy LINQ in Action now!
Our LINQ book is also available on AMAZON

.NET jobs

Emplois .NET

Tuneo

ASP.NET Hosting transatlantys

Contact

Me

Others

Selected content

Archives

April 2007 - Posts

Jasper and Astoria, projects to keep an eye on

Microsoft has just announced two new projects at MIX '07: Jasper and Astoria (codenames). Both tools are available for download as CTPs (Community Technology Previews, aka alphas).

Project Jasper is geared towards iterative and agile development. You can start interacting with the data in your database without having to create mapping files or define classes. You can build user interfaces by naming controls according to your model without worrying about binding code. Project Jasper is also extensible, allowing you to provide your own business logic and class model. Since Project Jasper is built on top of the ADO.NET Entity Framework, it supports rich queries and complex mapping.

Jasper looks similar to Ruby on Rails, Castle and SubSonic...
Note that Jasper requires languages that support late-binding like VB.NET and IronPython. Looks like C# is out of the game...
You can learn more about Jasper at several places:

The goal of Microsoft Codename Astoria is to enable applications to expose data as a data service that can be consumed by web clients within a corporate network and across the internet. The data service is reachable over regular HTTP requests, and standard HTTP verbs such as GET, POST, PUT and DELETE are used to perform operations against the service. The payload format for the service is controllable by the application, but all options are simple, open formats such as plan XML and JSON. Web-friendly technologies make Astoria an ideal data back-end for AJAX-style applications, and other applications that need to operate against data that is across the web.

Astoria follows another trend of our industry: REST APIs.
You can learn more about Astoria at several places:

With all the announcements and resources about Jasper and Astoria, it looks like Microsoft wants to push them hard. A lot to investigate anyway!

ADO.NET Entity Framework not in Orcas

Microsoft has just announced that the ADO.NET Entity Framework will not be shipped with Orcas (Visual Studio 2007(?) and .NET Framework 3.5). The previous news were that the ADO.NET EF would be released with Orcas, but without the designers, which would be released at some point afterwards. Finally, Microsoft has decided to ship the ADO.NET Entity Framework "during the first half of 2008 as an update to Orcas".

It was not easy for everyone to see why Microsoft was pushing two object-relational mapping products at the same time, LINQ to SQL and the ADO.NET EF, but now that only LINQ to SQL is going to make it in Orcas, it probably gives it a higher chance to be widely used. People adopting Orcas are likely to start using LINQ to SQL and not wait until the ADO.NET Entity Framework shows up.

The good news is that we cover LINQ to SQL in LINQ in Action, so we'll be able to help you to get up to speed with it :-) We do not cover the ADO.NET Entity Framework because it's not really related to LINQ, except the LINQ to Entities extension that allows (or will allow) querying the ADO.NET EF without writing Entity SQL.

Update: Microsoft finally presents its data-access strategy in a post that covers the ADO.NET Entity Framework, LINQ to SQL, LINQ to Entities, and the differences between them.

Cross-posted from http://linqinaction.net

Using configSource to split configuration files

As Nikhil Kothari writes in his blog, he's started to use the configSource attribute to split configuration files into smaller pieces.

For example, here is how he exports the profile configuration into a dedicated configuration file.
This is web.config:

...
  <system.web>
    ...
    <profile configSource="profile.config" />
    ...
  </system.web>
...

This is profile.config:

<profile>
  <properties>
    <add name="Name" type="String" />
    <add name="Age" type="Int32" />
  </properties>
</profile>
 

Make sure you use .config as the extension of your files so they cannot be served to the browser. Avoid .xml for example or your files can be available to prying eyes.

I've been using this feature for my web sites for a while. This allows having a unique web.config file, and separate sub-files for things that are different between the development machine and the hosting environment. For example, I have different connectionStrings.config and smtp.config files for the two environments. The benefits: the web.config file is smaller and hence easier to read, and you don't need a complete web.config file for each environment.

i4o, indexed LINQ to Objects

LINQ to Objects is a great improvement in .NET 3.5 to query in-memory collections. It offers a nice declarative query syntax, strong-typing and support for a rich set of operations. One of the things that LINQ to Objects does not offer is indexing. Indexing collections of objects could greatly improve the performance of queries. Some people realized this and Aaron Erickson even extended LINQ to Objects to provide support for indexing. i4o (indexes for objects) is the solution he proposes. i4o is available on CodePlex and described in Aaron's weblog.

Crossposted from http://linqinaction.net

New LINQ flavors: LINQ to Flickr, LINQ to NHibernate, LINQ to LDAP

In the spirit of LINQ to Amazon now comes LINQ to Flickr. Mohammed Hossam El-Din (Bashmohandes) proposes an implementation that is very close to what I created with LINQ to Amazon, except that this time it's the Flickr API that is used thanks to the FlickrNet library. I'm quite sure we will soon see more LINQ flavors appear to query various data sources. There is already work started to create LINQ to NHibernate and LINQ to LDAP APIs, for example.


Cross-posted from http://linqinaction.net
Posted: Apr 09 2007, 11:18 PM by Fabrice Marguerie | with no comments
Filed under: ,
PageMethods is now open source

I've been quiet lately about PageMethods because other projects kept me busy and contrarily to what I wished, I haven't been able to create PageMethods Pro last year.

Considering the facts that other important projects will continue to keep me busy this year as well, and that several people have ideas for ways to improve PageMethods, I've decided to open the project.
This doesn't mean that I'm abandoning the project. To the contrary, I think that making PageMethods open source and integrating developers is an opportunity for the project to grow.
I wish to keep the lead on PageMethods for the moment, and progressively add more developers to the project.

For the moment, I think it's better to share the source code only with key developers who already know where PageMethods is heading. I have a list of features that should be implemented, but I'm sure you can come up with interesting new features too. If you have a good understanding of PageMethods and you wish to impact the way it evolves, you may consider joining the team...
I've already set up the project on codeplex.com. See http://www.codeplex.com/PageMethods
If you are interested in joining the project, contact me and we'll see how we can work together!

Vote for SharpToolbox at the asp.netPRO Readers' Choice Awards

It's the period of the year when asp.netPRO runs the asp.netPRO Readers' Choice Awards. It's time for you to vote for your preferred ASP.NET products and resources for 2007.

If you like SharpToolbox and you think it's a valuable resource that helps you find .NET tools and libraries or promote your .NET business, please visit http://www.aspnetpro.com/readerschoice and select SharpToolbox in the "Community Resource" category.

Voting ends on April 8, so please vote as soon as possible so we have a chance to win!
Thank you for your help!

MVP in 2007

My fourth year as a Microsoft MVP starts today :-)
You can expect a lot of continued or new .NET community projects this year, including SharpToolbox.com, the LINQ in Action book, LinqInAction.net, proagora.com, PageMethods and more...
 

Posted: Apr 01 2007, 11:40 AM by Fabrice Marguerie | with no comments
Filed under: ,
More Posts