locked
Why do we need Oslo?

    Question

  • Please forgive me if this question is lame. But say I have to model a Customer. Now I can do it in C# or XAML or XSD or SQL.  Why do we need one more textual representation of Customer?

    Thanks
    Danie
    Friday, November 07, 2008 4:23 PM

Answers

  • Danie, as I mentioned at the end of my blog post above ("Oslo == 42", http://erikwynne.blogspot.com/2008/11/oslo-42.html), I don't think Microsoft really expects anyone to be using this in production "anytime soon".  
     
    The point of the PDC and making it available now is so that they can get feedback while it is still early and raw so that our response can help shape it before it is released as a production-ready tool.   This is simply good Agile development, getting feedback from customers early and often so that they can build the right product the first time--or at least the right foundation in the first release to build upon in future releases.

    Maybe it is too early and too raw for your purposes.  I think that is why Doug Purdy said that they really only expect ISV's and framework developers to be looking at it right now.

    However, I do think that when VS 2010 and .NET 4.0 comes out that you will be using some of "Oslo" in your day-to-day work, even if it is indirectly via WF or WCF.  You may never write a DSL, but you will probably be using some Oslo models built on them soon.

    So, stick with C# for now, but maybe start looking at your projects differently so that you can more easily transition to using models in the future when the tool support is more fully baked.
    Erik
    • Marked as answer by Mike Weinhardt Friday, December 19, 2008 8:58 PM
    Wednesday, November 19, 2008 6:11 PM

All replies

  • Hi,

    For your scenario, in many cases you would have to model it in C#, XSD, and SQL, ensuring that the model was consistant across all three technologies.

    With Oslo, you could model the customer in "M", and have the artifacts for each technology generated by compiling the "M" model. This would save a lot of time, and also ensure that the implementation was consistent across the three technologies.

    This is just one scenario where Oslo will help developers to be more productive. As the technology is so new, it will take a while for the dev community to fully understand and appreciate the benefits.

    Regards,

    Alan


    • Proposed as answer by justin.m.chase Tuesday, December 02, 2008 8:33 PM
    Friday, November 07, 2008 5:18 PM
  • Thank you very much Alan. But I am sure "M" will have its own impedance mismatch between other prevailing languages. So it will not be easy to generate artifacts perfectly. So I don't see any advantage in modeling things in M. It is just one more language to specify structure and constraints.

    Regards
    Danie
    Friday, November 07, 2008 6:31 PM
  • Hi,

    I think what we are looking at now is fairly early on in the development lifecycle. Hopefuly there will be improvements in the tooling, and more importantly, some detailed scenarios as to how "M" and Quadrant can be used to increase developer productivity.

    Regards,

    Alan

    Saturday, November 08, 2008 1:16 PM
  • Can someone from MS shed some more light on why should we model entities using M instead of other existing languages?

    Thanks
    Danie
    Sunday, November 09, 2008 4:05 AM
  • JJDanie,

    What specific modeling languages are you using today, eg C#, T-SQL, UML? How well do they work for you? How do you use them?

    Thanks!

    Wednesday, November 12, 2008 9:28 PM
  • Hi Mike,

    I use UML. And I agree that none of the mentioned languages are complete for modelling. (Each has its advantage and disadvantage). But my question is if M is transformed into SQL (as shown in the PDC video), why not stick with SQL that we already know? I agree that some constructs are "looking" better in M compared to SQL. But that does not warrant a new stack of software to represent the structure and constraints of my objects.

    Please help me understand what I am missing.

    Thanks
    Danie
    Thursday, November 13, 2008 7:47 PM
  • What is key here is the reason you need to model Customer. At a guess creating a model of customers is not your goal. Instead you goal would be part of some larger goal like create a Customer Relationship Management (CRM) system.

    Oslo's goal is to make it easier to build the CRM system. Some parts will still be written in code but Oslo facilitates faster development by:
    • Supporting the development of declarative runtimes. Since you write far less code you can be more productive and have fewer bugs. For example, you could have a declarative business rules engine that minimizes the amount of C# and SQL you need to write.
    • Supporting traceability and impact analysis throughout the lifecycle. This makes it easier and less error prone to maintain the application. For example, using the repository it becomes easier to determine the callers of a web service you need to change.
    • Supporting building your own special purpose languages (i.e. DSLs). For example, say there are many entities like Customer you need to support in the CRM system and it is a purely mechanical process to create C# wrapper classes, database objects, forms and web services for them. Then creating a small DSL and some automatic conversion tools could vastly reduce your development and maintenance costs. Oslo makes it feasible to do this where it may have been too costly in the past.
    Thursday, November 13, 2008 11:04 PM
  • Hi Anthony,

    Thanks for the explanation. Your three points highlights the advantage of declarative programming / DSLs. We can already gain these advantages using XSD/XSLT. Is Oslo just to clean up XSD/XSLT stack? What can we do in Oslo that we can not do in XSD/XSLT?

    Thanks
    Danie
    Monday, November 17, 2008 3:36 PM
  • Danie, I've tried to do my best to explain what I think the benefits of Oslo are in my recent blog post.  Maybe it will help?

    http://erikwynne.blogspot.com/2008/11/oslo-42.html

    Erik
    Monday, November 17, 2008 7:03 PM
  • I think the concept of XSLT is even still missing here. Xslt doesn't help convert Text into XML, but structured data into other structured data or arbitrary formats as text, html, whatsoever.

    But MGrammar does what XSLT can't - understanding text.

    Of course you got the Repository, too. But this doesn't really help in the development process. So the only thing your'e missing, is defining your own DSLs with MGrammar :-)
    Monday, November 17, 2008 10:50 PM
  • Thanks lcorneliussen. Your point highlights one major difference Oslo has compared to XSLT. I think Oslo's strength is in creating DSL. I still don't understand the advantage of Oslo from a medeling perspective. (It loos like it does not bring anything new to the table)

    Thanks
    Danie
    Tuesday, November 18, 2008 2:13 PM
  • I don't think "Oslo" is comparable to XSLT at all - its comparing apples to oranges. But still, when comparing some parts of Oslo with the Xml technology stack, we have xml (MGraph)?, xsd (MSchema) but no XSLT.

    I'd neither reduce "Oslo" to a textual DSL framework - allthough it is a very interesting part of it.

    Quadrant is quite big, and the repository is, too.
    Tuesday, November 18, 2008 3:12 PM
  • If you're trying to compare the components of "M" with XML, then MGrammer is the equivalent to XSLT.

    If you haven't already, check out ChrisAn's and GioDL's session on using Oslo for contextual DSL's:

    http://channel9.msdn.com/pdc2008/TL31/

    GioDL also has a few OnMicrosoft videos on MGrammer:

    http://www.informit.com/podcasts/episode.aspx?e=efb9d343-df64-4a47-9de0-dac4d288cc98
    http://www.informit.com/podcasts/episode.aspx?e=5f544ceb-dc8f-48ad-ad5d-5cc6eb20f075
    Erik
    Tuesday, November 18, 2008 9:28 PM
  • I think Oslo bring two components that are fairly new ideas for modeling:

    • Oslo recognizes that models don't need to be lines & boxes, but can also be described in code.
    • Oslo expects to provide a platform where the models can be executed directly, instead of having to go through a code generation cycle.   A big chunk of this effort related to WF/WCF applications was broken off as "Dublin", but that is still a big part of the core vision of Oslo.

    Erik
    Tuesday, November 18, 2008 9:33 PM
  • I've been watching these videos and I have tried MGrammar, too. It's great!

    But the only thing it has in common with XSLT is, that it does transformations, or rather projections.

    IMHO there is still a huge difference: MGrammar transforms text to structured data by describing it's grammar and projections, while XSLT requires structured data as input and can output text, html or xml and even run programm code via extension methods, ...

    Again: MGrammar transforms text into models, XSLT transforms models into text or models. They have as much in common as a compiler and a decompiler.

    Do I miss something?
    Wednesday, November 19, 2008 10:51 AM
  • Erik,

    Thanks for trying to answer my question. But I am still not convinced. We can model without lines and boxes using XSD and to some extend C#, XAML and SQL. And executing directly or generating the code and executing does not make any difference in large projects.

    The only advantage I see in Oslo is the easy DSL creation part. But I am not going to stop writing WCF code in C# and start writing in MService anytime soon. MService looks good on demo. But I don't know how useful it would be for end user or library developer. Also I don't think any DSL can beat the XAML/C# combination or the ASP.NET/C# combination.

    So I am going to stick with C#

    Thanks
    Danie


    Wednesday, November 19, 2008 2:18 PM
  • Danie, as I mentioned at the end of my blog post above ("Oslo == 42", http://erikwynne.blogspot.com/2008/11/oslo-42.html), I don't think Microsoft really expects anyone to be using this in production "anytime soon".  
     
    The point of the PDC and making it available now is so that they can get feedback while it is still early and raw so that our response can help shape it before it is released as a production-ready tool.   This is simply good Agile development, getting feedback from customers early and often so that they can build the right product the first time--or at least the right foundation in the first release to build upon in future releases.

    Maybe it is too early and too raw for your purposes.  I think that is why Doug Purdy said that they really only expect ISV's and framework developers to be looking at it right now.

    However, I do think that when VS 2010 and .NET 4.0 comes out that you will be using some of "Oslo" in your day-to-day work, even if it is indirectly via WF or WCF.  You may never write a DSL, but you will probably be using some Oslo models built on them soon.

    So, stick with C# for now, but maybe start looking at your projects differently so that you can more easily transition to using models in the future when the tool support is more fully baked.
    Erik
    • Marked as answer by Mike Weinhardt Friday, December 19, 2008 8:58 PM
    Wednesday, November 19, 2008 6:11 PM
  • can i use this sofware to congert T-SQL code to UML diagram.

    I have a huge stored procedure with 5000 lines and i need to view the flow of it.

     


    Please mark the post as answered to help others to choose the best.
    chandra sekhar pathivada | www.calsql.com (SQL Server Community Website)
    Friday, April 30, 2010 6:43 PM