Tagged with Oslo
This last week or two has seen a number of interesting stories come out of Microsoft (some official, some not official), especially as it relates to developers and writing code. While I am sure that the announcements are not meant to indicate a trend, taken in conjuction they are confusing or disheartening to developers.
First out of the gate was the announcement of WebMatrix. WebMatrix is a new non-Visual Studio tool for building websites using ASP.NET MVC (and their new view engine) along with a standalone version of IIS and SQL Server Compact. This tool is squarely pointed at the PHP set and wants to make things simple for people who need to just build websites quickly without all the ceremony of ASP.NET.
As my continued facination with all things SQL Server Modeling related, I was tasked with writing a short article on the introduction of the basics of SQL Server Modeling for the developer. The result is the article "The Busy Developer's Guide to SQL Server Modeling" that was released on MSDN today. It is short so you can get the big details without investing a month learning the technology. Let me know what you think!
I have a chance to sit down with Keith and Woody of the Deep Fried Bytes podcast to give them my long elevator pitch for Oslo and Domain Specific Languages. If you haven't heard me tell the Oslo story, grab some headphones...
I had the pleasure recently to sit down with Keith and Woody on their Deep Fried Bytes Podcast and talk about Oslo and DSLs in general. If you have a chance, go listen to it and let me know what you think!
UPDATE: All Three Are Available Now!
The newest CTP of the Oslo SDK is available and lots of changes are included:
If you haven't been following the new Specification for the M Language that the Oslo team has been cooking up, they have been making changes in response to feedback about the language. These changes will come to light in the next CTP. These changes are;
'=>' as label binding operator
In early June, I'll be making my first trip to Vancouver Canada. This trip will be so I can speak at DevTeach this year. DevTeach is a 3-day conference with an impressive lineup of speakers including Ted Neward, Julie Lerman, David Larribee, Tim Huckaby, Miguel Castro, Kathleen Dollard, Oren Eini and Richard Campbell!
I had a great time at the SQL Saturday in Atlanta today. I did two talks: Using MSchema and ADO.NET Data Services for DBAs. If you were there, thanks for attending. If you wanted to grab the code and slides, follow the link above!
My third (and last) part of my series on building Textual DSLs is now live on the Oslo DevCenter. In this part, I discuss how to take the DSL and use it at runtime or insert it into a database. Using the Oslo Toolchain the whole way.
I've been bloging some about my experience using and playing with different parts of the Oslo stack on projects and articles. I've gotten a couple of reactions as to why it matters. I have covered some of it in my article series that focuses on DSLs and developers here:
But there is a bigger picture here that I want people to get their heads around: Models Matter.
I've been playing a lot with M to do my database and test data loads for some internal projects for AgiliTrain and I've noticed an interesting representation for how relationships in MSchema are generating their SQL. In MSchema you have a couple of ways to represent a relationship between tables. The relationship syntax is one feature I really like in MSchema. For example, let's take the Northwind database's Customers and Orders tables. In MSchema I can define them in a traditional way where the Order has a reference to the Customer table:
As usual I have a full schedule of appearances coming up. After my long trip to the west coast, most of my appearances coming up are more on the right-coast. If you're in any of these cities, come by and hear me discuss your favorite topics:
The second of my three part series on convincing developers to build their own textual DSLs is up on the Oslo Dev Center. Take a look and don't forget the first in the series which you can find here:
When I talk to a lot of people about MVC they point to jQuery and other frameworks as the reason they want to use MVC. Certainly ASP.NET MVC allows us to program our views much closer to the HTTP protocol and the HTML DOM which means that scripting frameworks are easier. This means that you can do some amazing things with these tools in ASP.NET MVC without having to fit a square peg in a round hole.
I am doing a three-part article for the Oslo DevCenter on building Domain Specific Languages with MGrammar. In this first part, I state the case for Domain Specific Languages. The article is based on my the CTP2 of Oslo that was recently released. Take a look and let me know what you think!
In Part 1 of this series, I talked about why I used MVC to create my new venture. In this second part, I will talk about how I implemented MVC.
When I decided to implement MVC, I was very new to it so there is some code in the site that reflects that. The later code and the code I've gotten around to refactoring is much cleaner, but working code is working code.
My first step was to create a couple controllers for the first sections I knew I wanted to implement. I started with the Home and Workshop areas. One of my favorite features of the Visual Studio support is that I can create controllers, then stub out actions and views quickly. Once you have a controller and an action, you can simply right-click and use the context menu to create the view for an action:
The CSD folks have released a new CTP of the Oslo toolset. This release contains the same set of tools as the October 2008 CTP (nope, no Quadrant yet) but hopefully some of those pesky MSchema and Intellipad bugs will be gone. I'll let you know when I get deeper into the bits. Go grab it here:
I've spent the better part of six weeks building the new AgiliTrain website and its been quite a lot of fun. Of course if you have been reading this blog for long you know that I usually take a personal project like this as an opportunity to learning something new. In this case I did three things I haven't done on a personal project before:
I've been itching to use ASP.NET MVC on a project but until the beta arrived I didn't want spend too much time with it. Of course as you probably know, ASP.NET MVC released a RC yesterday so its pretty close to being done. I am still on the Beta until they RTW (release to web) ASP.NET MVC. Don't want to retrofit it twice.
Chris Sells and Craig Andera are trading blogs about what is and isn't a DSL. Craig has issue with the following from Chris' blog:
Here’s what he says, abridged:
In Part 1 of this series I showed you how to create database schema with MSchema. Then in Part 2 I showed you how to use MGraph to create data to store the in the database along side database schema. In this last part, I will show you how to use the M tools to put the schema and data in the database. I use these tools to build my database during a build script.
The first thing we need to do is to compile the schema. You can do this with the m.exe tool that ships with the Oslo SDK. While many of the demo's I've seen have pushed the data into the Repository, I want to push it into a generalized database. (My site isn't ready to be build on top of Oslo since its going to be released quite soon so I am just using the MSchema stack to help me build the database). When we compile the schema we can tell the tool type of target we're going to aim for. In our case we will target TSQL instead of the repository. So the first call in my database build script is to build the schema like so:
If you have read Part 1 of this series, you have seen how to create types, collections and constraints using MSchema. Along with most database schemas, I find the need to create some amount of data to go along with those schemas. For my current project (our new web site), I wanted to have some small set of data that included some basic workshops and locations.
To create the data we can use the MGraph language. MGraph is related to MSchema but is a way of describing concrete instances of data. To create an instance:
As most of you know, I run a small training company. We are in the midst of a re-write of our main website to allow for more cohesive registration and information about our classes. For this project, I am completely re-creating my database schema (as the old one was a bit 'off the cuff'). What a great opportunity to try out MSchema to build the new schema.
I am going to show you some features in three parts. In this first part I will show you how to define some interesting data types in MSchema. In the second part I will show you how to define your static or test data in MGraph that can be inserted into the database along with your schema. Then finally in the third part I will show you how to use the command-line tools to build your schema from the M files. Onto the first part!