Some comments about comments and other ramblings about Project Jasper


Over the last week or so we have been trying to gather information on what developers are saying about Project Jasper. (This, even in the age of rockin’ search engines is a lot harder then one thinks). As part of this, I have seen a handful of interesting comments that I wanted to comment on.

On Paul Gielens blog, in the blog comments for RAD is Making a Comeback with Jasper Ryan Ternier added the following comment:

Jasper looks cool, but it seems that the new things coming out are taking the coding out of programming.

On this point, the Project Jasper team totally agrees with Ryan. The goal of Project Jasper is not to take the coding out of programming, but to allow the developer to concentrate on code for one’s specific problem domain. In other words, one of our primary goals of the Jasper framework is to provide a model centric development experience where a majority of the app’s code is not plumbing code and/ or something the framework can take care of through convention. At a high level, the Jasper framework provides a conceptual model based on the underlying database or specified EDM. From there it also generates data classes dynamically at runtime so the developer can interact with the model in an O/R fashion. We fully expect the customization of these types and the interaction with the model to be code, and actually wouldn’t have it any other way. I don’t think we are there yet, but one of our eventual goals is to make the experience of programming against the Jasper API feel like using a DSL for one’s specific model. To be clear here, this is not our unique idea but based more on where we see the industry is headed.

Things are more efficient when they’re all custom built by the coder. Have all of these things at our finger tips will allow us to create applications very quickly, but at what cost?

Have to agree with this point also. Any time one decides to use a given framework or API, there is definitely a tradeoff between control and efficiency – both of the developer and the actual code. To be clear, the Jasper framework is a high level API. In other words, we are explicitly making the choice to increase developer productivity while sacrificing developer control and some code efficiency. However, since Jasper is built on the ADO.NET Entity framework, we have a huge advantage that the developer could always drop down to the lower level API – even in an application that largely uses Jasper. That said, in my opinion we have three challenges with Project Jasper to make it useable: 1) Make sure the Jasper API is the right abstraction to solve the targeted scenarios 2) Perf and scalability need to be good enough for production deployment of those same targeted scenarios and 3) Get the layering with the lower level APIs correct. IMO, for the first CTP release we have not done a super good job with any of the challenges, but have it on the radar.

There was also an interesting thread on the comments for Mary Jo Foley’s article about Jasper.  One reader added the following:

I see where Microsoft’s running with this stuff. The “quick and dirty” quote makes me nervous. Our projects are never of the quick or dirty kind, and more accurately, are usually the 6 month to a year kind. We (my company) don’t want to have anything quick and dirty in our applications, we don’t want any part of the application to be quick and dirty, simply because eventually one of us has to go back to that project many moons down the road, when the client requests changes, and we’re looking at all this quick and dirty code. We want to find the stuff that we can read easily then.

I have two comments for this: 1) For big projects with many developers, Jasper may not be the right tool. At least initially, we are trying to tackle the writing small to medium sized apps against an existing database. i.e. exposing a legacy database via a bunch of web services or a bunch of small form based applications. 2) There may be reasons a framework like Jasper is right for your project, but we never want it to be because the code is not readable or maintainable. Hence, why the project’s motto is “Quick and Clean”. In other words, we don’t want to provide a solution where initial developer productivity is traded for code maintainability down the road.

And finally, there is this entire post which the project team found very entertaining.

My only comment on this is that we would be lying if we told you weren’t impressed by the work being done by some of the web frameworks out there, but we also believe we have a number of features that make our solution unique: Linq support, support for multiple dynamic languages (IronPython, VB, IronRuby, managed Javascript), completely dynamic data class generation, a ASP.NET story that is not revolutionary, and rich mapping support.


Comments (8)

  1. lb says:

    ha ha. thanks for reading! (i feel a little embarrased though ;-))

    one question i’ve got — is there a connection between blinq and jasper?

  2. rogerj says:

    secretGeek has a valid point about the SQL Server-only limitation of Jasper.

    If Microsoft intends to live up to its committment that a primary feature of the Entity Framework is "The ability to query relational stores other than the Microsoft SQL Server family of products" it behooves the ADO.NET team to extend this capability to Entity Framework derivatives, such as Jasper and Astoria (which also has an SQL Server 2005 requirement for the toolkit). Microsoft must clarify that the SQL Server 2005-only limitation applies only to the early "incubator project" releases and not to the final release, if there is one. Failing that is "crying wolf"—no developer or RDBMS vendor will believe that the Entity Framework will be RDBMS-agnostic when Microsoft says Katmai will deliver the Entity Data Platform.

    –rj

    See the 5/12/2007 update to http://oakleafblog.blogspot.com/2007/05/using-entity-framework-with-ironpython.html

  3. rogerj says:

    secretGeek,

    My understanding is that Blinq is based on LINQ for SQL (it uses SqlMetal.exe), not the Entity Framework.

    Not much has been hear about Blinq since it’s mid-2006 release as a prototype that used the May 2006 LINQ CTP. It appears from the Blinq forum that the prototype hasn’t been updated for Orcas Beta 1’s LINQ implementation.

    –rj

  4. lb says:

    okay — i’ve just researched this a little further.

    So it seems that blinq is from the ASP.net team while Jasper is from the ADO.net team. Different beginning but a common goal. (I had wrongly assumed that Jasper was a rewrite of Blinq).

    A nice paragraph tying the two together is written here:

    http://pather.net/shyam/ViewPost.aspx?PostId=7

    (under the heading — "ASP.NET Dynamic Data Controls")

    cheers

    lb

  5. aconrad says:

    A few answers to the questions in the prior comments …

    Jasper being a Sql Server only framework is just a limitation of the first CTP.  If you look at the Jasper download package, we install private copies of System.Data.dll and System.Data.Entity.dll (renamed for the CTP) because we required some Entity Framework functionality not available in the Beta 1 Orcas down load.   As a result, because of the ADO.net provider factory design and the fact we didn’t want to mess with config files – we decided to hard code Sql Client as the only provider for the initial CTP.  This was a hard decision, but we wanted to get the preview out the door.  And since Sql Express is free – we could at least give folks a chance to play around with Jasper.  In house we actually have had Jasper working over some of the non-Sql Server Entity Framework providers and even over Access and DataSets.  Non-Sql Server provider support is very high on our list for CTP2.

    Also of note, Katmai (next version of Sql Server) for the Entity Framework is a ship vehicle not a restriction on what providers are supported.    Astoria and Jasper are currently very early in the product cycle (still in incubation) but I don’t see any reason why these technologies would only support Sql Server.

    The blinq project has actually morphed into a project called “Dynamic Data Controls for ASP.NET” (http://www.asp.net/downloads/futures/)  which is part of the latest Microsoft ASP.NET futures CTP.   Polita was one on the main designers and developers of that project, and is also part of the Jasper design team.  Going forward we are looking at integrating Dynamic Data Controls for ASP.NET WITH Jasper if this looks appealing to anyone.

    Cheers – Andy

  6. rogerj says:

    Integrating Dynamic Data Controls with Jasper appeals to me because BLINQ was based on LINQ to SQL. If BLINQ morphed to DDCs, this would indicate that the DDCs are based on LINQ to SQL, too. Assuming that Jasper becomes RDBMS-agnostic, it would provide RDBMS independence to the DDCs and, presumably, greater O/RM flexibility.

    –rj

  7. Jacky Lee says:

    When will Jasper Final be released? Anticipating~~~~

  8. aconrad says:

    No RTM release plan yet.  We are currently planning for another CTP release towards the end of the year.