Yesterday, Microsoft released .Net RIA Services which used to be called the "Alexandria" project, which was mostly in stealth mode until now. In his presentation at MIX 09, Nikhil Kothari, a Software Architect at Microsoft, commented:
n-tier development and architecture is hard and un-natural. Our goal is to bring ASP.NET / RAD style productivity to RIA development
Nikhil's team is focusing on end-to-end scenarios and solutions. He explained that there are a lot of problems common to all solutions such as handling errors, or supporting off-line operations. With SilverLight, some of the presentation layer business logic moves back from the server to client. .Net RIA services is about simplifying this process as this type of architecture creates redundant code, for instance domain validation rules.
Nikhil demonstrated how the .Net RIA team added metadata to the programming model to create Data Transfer Objects from Domain Objects. The programming model does not require that the DTO classes be explicit. Data is directly marshaled from the domain objects to the presentation layer based on the metadata definition.
Dinesh Kulkari commented on his blog:
in the good tradition of the LINQ project, we also have a great walkthrough in the MSI and a good set of quick starts on the download page.
With SilverLight, Microsoft is reclaiming the "client" space which Web applications had commoditized. RIAs and the technologies built to support them are returning the center of gravity of innovation from the server to the desktop. This time around, product managers understand that RIAs will only be rich if the "clientr" programming model is aligned with the one of the "server", unlike in the 90s. .Net RIA Services is only a preview and the team is working towards an aggressive set of features to help developers focus on Domain and Application logic, not the plumbing.
The .Net RIA Services Preview can be downloaded here. We will publish an interview with Nikhil Kothari in a couple of weeks.
Community comments
.NET RIA Services tutorials
by Emil Stoychev,
Re: .NET RIA Services tutorials
by Jean-Jacques Dubray,
Re: .NET RIA Services tutorials
by Sándor Nacsa,
Re: .NET RIA Services tutorials
by Jean-Jacques Dubray,
Re: .NET RIA Services tutorials
by Sándor Nacsa,
Re: .NET RIA Services tutorials
by Jean-Jacques Dubray,
Re: .NET RIA Services tutorials
by Sándor Nacsa,
Re: .NET RIA Services tutorials
by Jean-Jacques Dubray,
Re: .NET RIA Services tutorials
by Sándor Nacsa,
Re: .NET RIA Services tutorials
by Jean-Jacques Dubray,
Re: .NET RIA Services tutorials
by Sándor Nacsa,
Re: .NET RIA Services tutorials
by Jean-Jacques Dubray,
Re: .NET RIA Services tutorials
by Sándor Nacsa,
Re: .NET RIA Services tutorials
by Sándor Nacsa,
.NET RIA Services tutorials
by Emil Stoychev,
Your message is awaiting moderation. Thank you for participating in the discussion.
.NET RIA Services are just the right application framework Silverlight needed!
Here are couple of tutorials on the topic:
Re: .NET RIA Services tutorials
by Jean-Jacques Dubray,
Your message is awaiting moderation. Thank you for participating in the discussion.
I was quite impressed by the Domain Driven aspects of the framework. Finally somebody is paying attention both at the programming and architecture levels.
Re: .NET RIA Services tutorials
by Sándor Nacsa,
Your message is awaiting moderation. Thank you for participating in the discussion.
You mentioned the "Domain Driven aspects" of the .NET RIA Services framework. How would you characterize this domain-driven aspect taken by .NET RIA Services versus the strict DDD?
I mean such things like strict DDD emphasizing behaviour first vs. data first (which seems to be the .NET RIA Services case), or the suitability/adequacy for "behaviour-centric" applications (which are considered the only true case for DDD by the strictest DDD advocates) vs. "CRUD-style" applications (for which .NET RIA Services has mostly been designed for) etc.
Re: .NET RIA Services tutorials
by Jean-Jacques Dubray,
Your message is awaiting moderation. Thank you for participating in the discussion.
Sandor:
let me start by saying that I am neither a specialist of DDD and RIA Services. I will follow up with an interview of Nikhil and will ask him your question. From what I understood from his presentation (which is available now on the MIX 09 web site) is that RIA Services has developed the capability to reuse some of the "domain behavior" on the client. For instance a validation rule. I had identified this exact problem in my book "Composite Software Construction" and this is for me the main reason for stating that OO is responsible for the failure of building Enterprise Information systems. RIA Services has given itself the goal of normalizing the way you express domain logic. There is some CRUD aspect to that, eventually it has to go to the database, but CRUD is by no means the goal of RIA Services, this is more the goal of Entity Framework which RIA Services is using.
Incidentally, I am not a big fan of DDD because it does not surface one of the fundamental aspect of domain entity behavior: Entity Lifecycles (which can be represented with a state/transition diagram). RIA Services does not consider this either, and that will definitely be a question I will ask to Nikhil as well.
Re: .NET RIA Services tutorials
by Sándor Nacsa,
Your message is awaiting moderation. Thank you for participating in the discussion.
Jean-Jacques,
The general problem is that the DDD camp (whether Erik Evans' strict DDD followers or the more tooling oriented naked objects camp of Richard Pawson -- in disagreement themselves, e.g. the naked object approach has been criticized by "strict DDD" as capable of only "CRUD-style" applications) is playing down the need for other software construction approaches. In fact it would be quite useful to put together a taxonomy of all software construction approaches at least for the business applications. Then the "RAD for business applications" approach seemingly proposed by the .NET RIA Services could also be put somewhere.
BTW there is also the construction approach taken by Microsoft SharePoint where entity/business object lifecycle management has taken a central role but there is also a clever way of including unstructured objects, even in the form of whole document libraries. So a taxonomy of all business software construction approaches could be quite rich and very useful for everybody to understand the current diversity of approaches each of them with their own mission and place in the whole.
Re: .NET RIA Services tutorials
by Jean-Jacques Dubray,
Your message is awaiting moderation. Thank you for participating in the discussion.
This study will be most useful and if this is something you are interested in, I am sure it would make a great article on InfoQ. In the end there is only one clear thing, current programming models -applied to information system construction- are broken, deeply broken. This is of course exarcerbated by ever more complex architectures.
Interestingly enough, the REST camp has just uncovered its real motivation, going back to CORBA with Bill Burke talking about IDL, Tim Bray talking about actions and controllers and Anne Thomas Mannes discussing "updates" in REST as "methods" (apsblog.burtongroup.com/2009/03/rest-principle-...).
The approach that I think will ultimately win is "Metamodel Driven Development", i.e. creating a programming environment independent of the architecture (and where architecture refactoring is possible), solely focused on expressing the solution (not the problem) in the most normalized way possible.
Ultimately, every approach has one or a few pieces of the puzzle, yet sits in their "camp" and refuses to see the other pieces. This is kind of sad.
Re: .NET RIA Services tutorials
by Sándor Nacsa,
Your message is awaiting moderation. Thank you for participating in the discussion.
5 months after Oslo details at PDC08 what is the change in your Oslo position (if any), i.e. what you've written in:
www.ebpml.org/blog/149.htm ????
Also, how much the new .NET RIA Services coming from another MS division (DevDiv vs. CSD) could improve the current very-very sad services based development situation?
Re: .NET RIA Services tutorials
by Jean-Jacques Dubray,
Your message is awaiting moderation. Thank you for participating in the discussion.
Sandor:
I have no insider knowledge about Oslo. Nothing new came out since the PDC and IMHO, the team is either lacking direction or not making its direction public. First now Oslo is just about Metadata, when it was announced Oslo was much bigger(www.infoq.com/news/2007/10/Olso-announcement). Is it a metadata management framework, or does it really support Metamodel Driven Programming and will have deep ties into Microsoft's Technology Stack? You would think that MDP is so important that you could wonder why they would spend any time on Metadata Management when Microsoft has already things like DSL tools.
So until I see something new, it is difficult to change my opinion. IT needs between 50X and 100X productivity improvement, focusing on anything less is just a waste of time.
The Cloud is moving at high speed in this direction with concepts such as "turnkey" and "elastic" enterprise class infrastructure. Some of the Web-based development tools are extremely promising when combined with these two properties. It is going to be interesting to see who wins.
The Cloud has an unfair advantage since everything in it can be upgraded seamlessly in a backwards compatible way for the tools and in a forwards compatible way for the services. Anybody who builds on-premise infrastructure or tools is forced to adopt the upgrade cycles of its customers.
JJ-
Re: .NET RIA Services tutorials
by Sándor Nacsa,
Your message is awaiting moderation. Thank you for participating in the discussion.
Jean-Jacques, thanks for indicating your current views on those two issues.
Meanwhile Microsoft seems to focus on Oslo in a much more practical way than any time before.
First, they have launched an "indepedent, ISV like" team under Adam Denning to build a "big app which exercises a lot of Oslo technologies and will end up as a key reference sample" which "makes extensive use of workflows, has numerous client, server and cloud components, and integrates with external systems." Such an app is essential because "Oslo is comprised of a reasonably large set of quasi-independent product teams, so it’s our job to come up with that ‘all-up’ scenario that together they agree can be achieved." More on that on blogs.msdn.com/e2eblog/default.aspx (entries named 'Making Oslo Great', 'Friends With Benefits', 'Pretending Not To Be Microsoft' and 'Quick Follow-On').
Second, the whole CSD have been merged this quarter with the Data and Storage Platforms Division (the "SQL Server division") comprising a new group called the Business Platform Division. With this enterprise data management, service-orientation and cloud computing are moving very close to each other in a very practical way.
The official Oslo Q&A (msdn.microsoft.com/en-us/library/dd129873.aspx) is already indicating this close relationship as follows:
Q: How does Oslo relate to SQL Server?
A: “Oslo” makes intensive use of SQL Server in a deep and rich way. One of the key design points of “Oslo” is the use of a natural and straightforward SQL database, the repository, for storage, editing, and sharing of models. The “M” language supports the authoring of models for storage in SQL Server in a first class way. The “Quadrant” tool supports the editing of models in a SQL Server database. We view “Oslo” as an important step in bringing the power of SQL Server to the next-generation of model-driven applications.
Q: How does Oslo relate to the Entity Framework(EF)/Entity Data Model (EDM)?
A: EF and EDM are important technologies for Microsoft. “Oslo” full embraces EF/EDM as a primary mechanism for “Oslo”-based runtimes to access the repository. We are working closely with the Entity Framework team to enable this scenario. In addition, as we continue the development of “Oslo” we expect deeper alignment with EF/EDM. In particular, we expect that to have “Oslo” textual and visual DSLs for EDM and for these to play an important role in how application developers build model-driven applications.
Third, the .NET Services March 2009 CTP Release has expanded support for standards like REST, ATOM, SOAP and HTTP which is showing that the standards and architecture related work has essentially been finished and everything is there to productize the whole combined technological muscle (together with EF/EDM) via the upcoming release of the Microsoft cloud and on premises platforms (from the newly formed Business Platform Division).
When the first SCRUM release of the Federated Task Assistant (FTA) "ISV" application from Adam Dening's unit will be available we will see the real power of Oslo first time. I would not be surprised if such an application would also use .NET RIA Services in some way.
Meanwhile it is also worth to read Steven Martin's blog (blogs.msdn.com/stevemar/default.aspx) as well as make technology update on .NET Services March 2009 CTP Release:
-- blogs.msdn.com/netservicesannounce/archive/2009...
-- vasters.com/clemensv/CategoryView,category,.NET...
Re: .NET RIA Services tutorials
by Jean-Jacques Dubray,
Your message is awaiting moderation. Thank you for participating in the discussion.
Interesting development to see the CSD absorbed by the SQL Server team. Not surprising considering their track record. The Q&A confirms that Oslo is now "just" a repository, quadrant and M, this is very far from the original announcement which was focusing on SOA and Composite Apps.
IMHO, both quadrant and the repository are big distractions for people that are looking to make massive productivity improvements, they could focus on them later, if they are needed. I don't discuss the need for Metadata Management tools, even in an Metamodel Driven Programming approach and a textual DSL context, but why not get MDP right before you start building infrastructure for it? One of the key problem that Oslo does not seem to focus enough is "upgradability", which comes native in Cloud-based Environments.
So again, at the moment I think that either the team has no real direction (and power) or they are not announcing their real direction. I need to see a bit more than a "Hello World" "REST Service" to see if this technology has some chances to be successful at Microsoft. You would think for instance that Oslo would not rely on Entity Framework but instead it would be able to rewrite Entity Framework in no time, it seems to me that they cannot even eat their own dog food, which is not a good sign for a Model Driven Engineering technology.
For instance, I would be a lot more positive with the technology if I could see them developing a Composite Application Programming model (and drive their requirements from there). In other words, they claim 10X improvement but they don't use a practical approach that would say "here is a programming model that can give you 10X" this is how you can build it yourself with Oslo (M, Quadrant, Repository). They could then explain that "Now you can use our programming model or build your own". I don't see any of that. Oslo, seems to be taking a very classical approach to MDE, assuming it works and people will get 10X because "we think you'll get 10X".
This last point is critical IMHO because it is important to realize that we have done a lot of good architecture work in the last 15 years. But, we left the programming model behind, we have babelized the programming environment because we let each element of the architecture evolve independently of the others from a programming model perspective. This is not a bad strategy, however, now is the time to create encompassing programming models (note the plural, hence frameworks like Oslo) for connecting systems. Not a programming model that question the architecture, but a programming model that can let us take advantage of these architectural evolutions. I don't see Oslo going that route, or using that route as a direction, hence my disappointment.
Now, where Oslo could really hurt Microsoft's Cloud initiative is by "occupying the Cloud Development Environment" space. In other words Microsoft could rely on Oslo for solving that problem instead of heavily investing in SilverLight based development/management tools. This is for me a real concern and I would not look at it lightly, because again, I don't see anything today in Oslo that will let me believe that this technology will have a different fate than other MDE approaches.
So overall, I don't see anything really solid coming out of this team, people have tried this kind of things for 10 years and we are still waiting to see the benefits. Is Oslo going to be a marginally better DSL Tools? or is Oslo going to tackle the challenges of the next decade and support MDP? That is the question.
Re: .NET RIA Services tutorials
by Sándor Nacsa,
Your message is awaiting moderation. Thank you for participating in the discussion.
A very recent response from Microsoft is clarifying a lot about their final direction:
"Oslo isn’t about SOA; it’s about modeling (hence the “M”). SOA is one of the domains that Microsoft anticipates could be helped by Oslo, but the terms are not synonymous, said Burley Kawasaki, director of developer platform product management at Microsoft. The problem with data modeling as it exists today is that everyone has their own way of doing it, which means nobody can talk to anybody else, Kawasaki said. Even within a given company, different groups may model data differently, which makes the handoff a pain point. Microsoft’s vision is to unify data modeling in the same way that XML unified markup." See more at itknowledgeexchange.techtarget.com/dotnet-devel... (published April 6).
This is aimed at composite application development as well (see Kawasaki's Jan/Feb'09 response in community.devproconnections.com/blogs/windowsde...) but I would say it is just as much part of the whole Oslo story as SOA is. And certainly they have clearly no intention of starting from a Composite Application Programming model you are advocating. They simply see the problem of standardized, useful and easily transferable models far more superior (or much more practical for them from the point of view of achieving THEIR OWN success) than the lack of generally accepted Composite Application Programming model you are advocating in www.infoq.com/minibooks/composite-software-cons....
And they are extremely focussed now on "down to earth" (in their understanding) things as shown by this recent response by Kris Horrocks, a senior product manager from Microsoft:
"We need to be more explicit about what our v1 goals are versus what we see as the longer term vision. Initially, we're focusing on winning the hearts and minds of developers and making modeling very relevant to developers by making their life easier in their day-to-day task of building an app or a service. So, initially you'll see Quadrant have a very developer-centric focus. That is the tools, the models, and the experiences we provide, will focus a lot on domains that are relevant to a developer so as an example, technical workflows, service interfaces, UML, .NET." See more at reddevnews.com/reports/article.aspx?editorialsi... (published March 25).
Whether Microsoft is right or not (even from the point of view of their own interests) I don't know, but I think that their real direction is pretty clear now. I am also sure that such an Oslo when combined with "SilverLight based development/management tools" you are mentioning as worth for heavy investments could help to realize your vision of a Composite Application Programming model, albeit not in V1 coming with Visual Studio 2010.
Re: .NET RIA Services tutorials
by Jean-Jacques Dubray,
Your message is awaiting moderation. Thank you for participating in the discussion.
Yes, I think you are correct, the direction is clear. I have written an analysis here. I was wondering if you have an opinion about how Oslo and VSX differ?
I am only talking about SOA and Composite Apps in reference to the first Oslo announcement. You would admit that it is quite odd to announce Oslo is about X and deliver something that covers Y.
Re: .NET RIA Services tutorials
by Sándor Nacsa,
Your message is awaiting moderation. Thank you for participating in the discussion.
The E2E group communication about their FTA based approach was last year.
To the question "What happened to Adam Denning’s group and/or his mission?" Doug Purdy responded as (see www.douglaspurdy.com/2009/04/09/where-is-oslo-g...): "We are still in the process of figuring out how to take to market several of these technologies then. At that time, “Oslo” was composed of the next-generation workflow engine, the VS designers for that, the repository, Quadrant, the app server, and the cloud services. Prior to PDC, we made a decision to decouple many of these from the Oslo name and schedule as they were better aligned with the Dev10 and Azure. We decided at that time to continue to use the Oslo name for the modeling aspects of that platform. ... The E2E team is still functioning, they are working broadly across the all the technologies offered by the Microsoft (but with special focus on the technologies birthed as part of the Oslo initiative)."
Hopefully we will see an update on that soon.
Re: .NET RIA Services tutorials
by Sándor Nacsa,
Your message is awaiting moderation. Thank you for participating in the discussion.
Doug Purdy has just made an important clarification in his blog (see www.douglaspurdy.com/2009/04/09/where-is-oslo-g...):
"We are not using FTA to drive anything. FTA was the name of an app that was being built on top of “Oslo” back in the days when “Oslo” == Modeling + WF 4 + what is now Dublin + what is now .Net Services ... [which continues in the comments part as:] ... At that time, “Oslo” was composed of the next-generation workflow engine, the VS designers for that, the repository, Quadrant, the app server, and the cloud services. Prior to PDC, we made a decision to decouple many of these from the Oslo name and schedule as they were better aligned with the Dev10 and Azure. We decided at that time to continue to use the Oslo name for the modeling aspects of that platform (I decision I sometimes question, frankly).
These are all pragmatic customer driven decisions. We make our decisions based on delivering customer value as soon as possible, even it means we are going to take a “hit” in how to talk about it. In Dev10, the Oslo initiative birthed a new workflow engine, new designers for that, new XAML stack (with DevDiv), new component model (MEF, with DevDiv) and other improvements to other components of .NET like WCF, etc. In Azure, the Oslo initiative birthed the .Net Services part of the Azure Service Platform and influence the overall strategy broadly.
The term “Oslo” today refers to a modeling stack — which is just technology jargon for a data stack. We have a language (”M”) for writing down other languages, instance data, schemas, expressions and functions. We have a repository (which is just a SQL Server database with a “catalog” in it) for storing data. We have a tool (”Quadrant”) for getting N views (graphical and textual over that data). We have a set of base “models” that people can use and extend to help people write down and access data. We are then taking that stack and working with teams all over Microsoft to move the application lifecycle (design, build, manage) to top of this stack."
This will hopefully appear in their "Oslo" FAQ (msdn.microsoft.com/en-us/library/dd129873.aspx) as well which -- despite it's March'09 publication date -- contains an extremely broad definition of Oslo as "“”Oslo” is the code name for Microsoft’s platform for model-driven applications" and as such seems to still reflect the initial scope of the "Oslo" initiative.