Marquee de Sells: Chris's insight outlet for category 'oslo' via ATOM 1.0 csells on twitter

You've reached the internet home of Chris Sells, who has a long history as a contributing member of the Windows developer community. He enjoys long walks on the beach and various computer technologies.




More from Stephen Modeling an Application in Oslo

Stephen has three more installments in his series on modeling an application in Oslo: Discovery, Domain Entities and Refactoring and Transforming MGraph to TSQL. It's fascinating to watch him use the platform starting from scratch. Recommended!

0 comments




Stephen Forte: Oslo Confessions of a .NET Programm

Stephen's been turning himself into an Oslo programmer:

"Telerik is building some cool Oslo utilities and I am in the middle of designing them. As I was talking to Chris about some of the specs the other day, he asked me: “What are you using to keep track of the metadata of your application in your design process?” I was like: “Pen, paper, whiteboard, Word and Excel.” He said why are you not using Oslo? Then it struck me, I was in .NET programmer mode. So last decade. While I am using Visual Studio 2008, WPF, SQL Server 2008 and the Oslo SDK to build an application for Oslo, I was not using Oslo to help build the application."

Worth watching.

0 comments




Welcome to the January 2009 "Oslo" SDK!

Hello again from Chris and Kent, your editors on the "Oslo" Developer Center. On Friday, January 30th, we released the January 2009 CTP of the “Oslo” SDK. This release was primarily a quality release, but we’ve also added some new features (which you can read about in the release notes). My favorite of these is token actions, which lets me do things like specify a string in a .mg file but pull out the guts without keeping the double quotes that surround it:

token String = Word | a:'"' s:('""' | ^'"')+ b:'"' => s;

If you’re building grammars, you know why this is cool and if you’re not, what are you waiting for?

Also, you’ll want to check out the new Modeling Patterns and Guidelines document where we start to explore common modeling tasks and how to approach them in M. This document will grow a great deal over time and if there’s some particular topic you’d like to see covered, drop us a line.

In the three short months since the PDC, we’ve tried to keep you up to date on fresh content from the team showing off how we think our customers will want to use or showing off features you might not have known about. The ones in this category I think will get you pointed in the right direction are "Oslo" Basics: Build Metadata-Based Applications With The "Oslo" Platform, Mr. EPL and Spork.

Also, "Oslo" has generated a ton of buzz in the community, including the forum, the connect bug database and in the blogosphere. The ones we think you should take particular note of are featured on the DevCenter as soon as we find them. Items I really think you should check out are Why Oslo is Important, MSchema and Decorator Tables and Creating a Logo/Turtle Graphics Textual DSL using Oslo MGrammar.

But wait, there’s more! If you’d really like some focused time on "Oslo," there are not one but two training courses, one from Agilitrain and one from PluralSight.

Finally, if you’re an MGrammar fan, you’ll love the DSL DevCon, April 16 & 17 in Redmond, WA right after the Lang.NET conference.

Our goal on the DevCenter is bi-directional communication, so we’ve worked hard to make sure we keep our eyes open for all of the wonderful things you’re putting "Oslo" to use on. However, we’re only human, so if we miss something, whether it’s something you’ve built with "Oslo" or a question or piece of feedback, don’t hesitate to let us know!

Also, in case you don’t know what "Oslo" is or how to get started, you should check out the Getting Started section on the DevCenter home page.

Keep those cards and letters coming!

XXOO, Chris Sells & Kent Sharkey

0 comments




Bill Gibson on Domain Modeling

Bill Gibson is an architect on the Oslo team and is in charge of our M coding conventions and modeling patterns documents. He's started blogging recently and has a nice post about domain modeling in Oslo. He's a good guy to hit up with questions about how to model various constructs in M or just modeling questions in general. He's been doing this modeling thing forever...

0 comments




Agilitrain: Model Driven Development with Oslo

Holy cow -- another Oslo course, this one from Agilitrain:

"Microsoft's Oslo is trying to change the way that software is designed, developed and delivered. They are introducing a platform for building real, scalable and manageable model-driven applications. Being an early adopter of this platform will prepare you for our changing world.

"This course will show you how to build models and domain specific languages and use them all at runtime using the Repository to create great applications for your users."

I'm a huge Shawn Wildermuth fan (Shawn's the author of this course and the instructor). Recommended.

0 comments




All Technology Has Downsides

Rocky makes some good points in his recent piece on DSLs (DSLs – fun, cool, but maybe a bad idea? ) -- basically, who's going to learn the DSL when the folks that know it move on? That's one potential downside of the proliferation of DSLs and I could give you more.

However, all technologies come with these downsides, e.g.

The point isn't whether a technology has downsides or not -- of course, it does. The point is whether the upsides outweigh the downsides. In the case of DSLs and model-driven development all up, the "Oslo" team is making a big bet that we can make you overall more productive when digging ourselves out of the IT software backlog hole. Will we be? I think so, but we have a lot of work to do before we'll know for sure.

And how do we reduce the impact of the downsides of a new technology? By knowing that they're there, which is why Rocky's commentary is so useful. Recommended.

0 comments




ExtractM "Oslo" Sample

ExtractM is a sample command-line tool for extracting M source code from compiled M images by Shannon Koh, a developer on the "Oslo" team. Enjoy!

0 comments




Dan Vanderboom: Why Oslo Is Important

I couldn't have said it better myself. Very much worth the read. Enjoy.

0 comments




SE Radio: Oslo with Don and Doug

Episode 123 of Software Engineering Radio is all about Oslo:

"In this episode we discuss Microsoft's OSLO platform with Doug Purdy and Don Box. We briefly discuss what OSLO is in general and then look at the various components of OSLO. We also look at how OSLO fits in with the general Microsoft strategy and how it compares to other DSL/Model-driven approaches. We then look at language modularization and composition and discuss the similarities with XML and Smalltalk. Finally, we discuss possible integrations of OSLO with other MD* approaches and technologies."

Enjoy.

0 comments




MGraph: Taste Great, Less Filling

Lars Corneliussen has a fun post entitled Microsoft "Oslo" MGraph - the next XML? He concludes by comparing JSON, XML and MGraph to represent the same data:

Enjoy.

0 comments




I'm speaking at VSone in Munich, Feb 11-12

I'm giving two talks on model-driven development at VSone in Germany in Feb this year: the keynote and a dive into Oslo. If you're in the neighborhood or are looking for a party spot, drop on by!

I'm even going for an extra few days to see the sights -- hopefully it won't be too cold. I'm from the Midwest and all, but when it's cold there, we stay home. I want to go out! Any suggestions for what I should oughta see?

0 comments




Oslo Tool: SQL schema -> MSchema

Kristofer Andersson is designing and implementing an airline reservation in the open air. In the process, he ported his models to M, but not by writing them by hand, but by writing a tool to convert existing SQL schema to M. Enjoy.

0 comments




Dealing with the Visual Studio 2010 expiration in the WCF and WF 4.0, “Oslo”, & “Dublin” PDC08 Virtual Machine

If you’ve been using the WCF and WF 4.0, “Oslo”, & “Dublin” PDC08 Virtual Machine provided on the PDC08 Goods Disk, you’ve probably noticed that Visual Studio 2010 within the VPC expired at the end of December and you are presented the following message “The evaluation period for Visual Studio Trial Edition has ended”.  Below are details on how you can export your data and get the image working again.

The work around involves creating a new differencing disk and new virtual machine configuration file and then disabling the clock synchronization between the host and guest OS.  In the end you will have a fresh virtual machine that believes it is 10/10/2008 and the clock will only increment when the machine is running.

NOTE: This workaround assumes you have not altered the “PDC08-CSD.vhd” file that was marked Read Only on the PDC08 Goods Disk.  If this file has been altered, the work around may not work.

1.     Export the data you want to keep from the VPC image.  This can be done using the “Shared Folders” feature of VPC 2007 to copy the data to your host and then copied into the new image at the end of this process.  See the “Share a folder between a virtual machine and the host operating system” topic in VPC 2007 Help for more details.

2.     Shut down the Virtual Machine and discard your changes. At the end you will end up with a fresh, new image but you need to discard any saved changes so that you can alter the VMC file later in this process.

3.     Create a new differencing disk.

a.     On the “Goods Disk” search for the PDC08-CSD-WorkDisk.vhd file and rename it to anything you want.

b.     Launch VPC 2007, click File, select Virtual Disk Wizard and click Next.

c.      Select “Create a new virtual disk” and click Next.

d.     Select “A virtual hard disk” and click Next.

e.     Store the new disk in the same folder where you found the PDC08-CSD-WorkDisk.vhd file and give it the same name.  Click Next to continue.

f.       Select “Differencing” and click Next.

g.      Locate the “PDC08-CSD.vhd” file in the same folder where you found the other vhd file, select it and click Open and Next.

h.     Click Finish and then Close

4.     Create a new Virtual Machine.

a.     Launch VPC 2007, click New and click Next.

b.     Select “Create a virtual machine” and click Next.

c.      Click browse and navigate to the same folder where you created the new PDC08-CSD-WorkDisk.vhd file in step 3 above.

d.     Create a new vmc file with any name you like and click Save, then click Next.

e.     Select Windows Server 2008 in the Operating System dropdown and click Next.

f.       Select “Adjusting the RAM”, click Next, set the amount of RAM you want to allocate (we allocated 1536 in the original virtual machine) and click Next.

g.      Select “An existing virtual hard disk” and click Next.

h.     Click browse and select the new the new PDC08-CSD-WorkDisk.vhd file in step 3 above and click Open.

i.       Check the Enable undo disks box and click Next.

j.       Click Finish.

YOU MUST DO STEP 5 BEFORE LAUNCHING THE IMAGE OR YOU WILL HAVE TO DO STEPS 3 & 4 AGAIN.

5.     Disable the host OS synchronization of the VPC.  This is a change to the PDC08-CSD.VMC file that disables the clock synchronization between the VPC and the host OS.  This means that time in the VPC moves forward only when the VPC is being used. As a result, you will have over 2 months of runtime (not wall time) for a fresh VPC.

a.     Find the PDC08-CSD.VMC file in the same folder where you found the PDC08-CSD-WorkDisk.vhd in step 2.

b.     Open the file in Notepad and made the change highlighted in RED below:

<integration>
    <microsoft>
        <mouse>
            <allow type="boolean">true</allow>
        </mouse>
        <components>
            <host_time_sync>
                <enabled type="boolean">false</enabled>
            </host_time_sync>
        </components>

Bunch of other stuff that I am skipping over to save space...
    </microsoft>
</integration>

c.      Save and close the VMC file.

6.     Launch the Virtual Machine in VPC and repeat step 1 to create the Shared Folder for copying your data back into your new image.

Your virtual machine will now show a date of 10/10/2008 and will only increment when the virtual machine is running.

One important note:  Don’t attempt to join the VPC to a domain since the domain will set the time within the VPC and thus cause Visual Studio to expire.

Many thanks to Jeff Beehler for this information which he posted on his blog, Brian Keller and his detailed description of the various activation messages associated with the CTP as well as to Virtual PC Guy who provided the original information on how to disable the VPC clock synchronization. 

If you’ve converted this VPC image to HyperV following Grant’s instructions, be sure to read Cameron’s update to learn of a similar workaround for HyperV.

0 comments




The First "Oslo" Training Course!

Pluralsight has a two-day course of "Oslo" available on 3/30 in Kirkland:

Since the release of .NET 3.0, Microsoft has been actively engaged in an internal initiative to unify their services and modeling technologies. The result is a new modeling platform -- codename "Oslo". To summarize, "Oslo" makes it possible to move from a world where models describe the application to a world where models are the application. The technology to deliver this new set of capabilities will be delivered through future versions of BizTalk Server, System Center, Visual Studio, .NET Services and the .NET Framework. Come get a "first look" at this ambitious effort and see what's available today!

Enjoy.

0 comments




What is all the fuss about how you can write DSLs in Lisp?

I found an interesting post on domain-specific languages and Lisp from June of 2007. It has this to say about designing a DSL:

"There are three approaches to designing programming language syntax. The first is to develop a good understanding of programming language grammars and parsers and then carefully construct a grammar that can be parsed by an LALR(1), or LL(k) parser. The second approach is to `wing it' and make up some ad-hoc syntax involving curly braces, semicolons, and other random punctuation. The third approach is to `punt' and use the parser at hand."

I like these categories. I find most folks do #2 with no tooling support or #3 using XML. MGrammar in Oslo is about making #1 easier than #2 and providing the tooling support, e.g. language-specific Intellisense services.

The real topic of the thread, however, is how to do a DSL in Lisp. The questioner would like to implement the following syntax:

trade 100 shares(x) when (time < 20:00) and timingisright()

I find this syntax to be reasonable for an event and it wouldn't be hard to imagine a system with a bunch of rules expressed this way and I could imagine a developer and a business person working together on such a system to ensure things were expressed properly. I don't think I could imagine the business person keeping up as well with syntax expressed as the answerer suggests, however:

(when (and (< time 20:00)
                   (timing-is-right))
      (trade (make-shares 100 x)))

IMO, that's not a DSL -- that's just a set of function calls in an existing language.

0 comments




36 older posts       60 newer posts