Thursday night I had the honor of giving my new talk “Software Modeling with ASCII, and no I’m not kidding” to the Columbus Computer society of the IEEE. They were very welcoming and enjoyed the talk, and had a number of comments about the technology and its use.
I start the talk with what essentially be the first chapter of Professional Software Modeling. WE cover the problems with current modeling systems, and the timeline for modeling and object/relational mapping
The bulk of the talk is effectively a demo of deploying a database and entity classes form a simple model and then generating an ASP.NET MVC web site from the model. It is similar to the hands-on-lab at the PDC, with the Mini Nerd Dinner.
Right off the bat, a listener pointed out that we HAVE these tools already. Don’t we have XML? What’s wrong with that? Tools like WSDL and EDMX solve these problems, and are human readable! Why do we need something else?
I agreed in principle but I pointed out that not many people think that XML is not human readable any more. The sample code was, but the 150,000 line long files that end up getting used are NOT. Especially when there are only about 1,500 important lines in the file.
The XML is still there, I assured everyone, and the model was still in EDMX. M is just a way to work with the model that is a little more succinct than the XML. Additionally, I pointed out, there are more semantic pieces to M that we hadn’t gone over. We had done the nouns, but there are verbs too, if you get my drift.
As we went over how an M model looks in the M file, and how the final database and domain classes look, someone asked the obvious question. It’s the same question that I asked last fall.
“Great! What do I do with an EXISTING application?”
I don’t have a good answer for that. Would I like to be able to take an existing application’s database and look at the representative M file? Yes. Can I? I am not sure I can. That is an open question.
Honestly, I haven’t taken the time to look into the story for existing applications. Fact is, most application development is adding features to existing applications and I don’t know how M fits into that. If it is going to be a good modeling tool for existing application there needs to be a reverse-engineering story, and I hope there is. I mean, you can always make a model from an existing database, but I am not sure that is enough.
The last discussion we had was about potential. Specifically – what is Microsoft doing to support hte wide adoption of this product? How about multiple datasources? What if I need to model an identity system, where there is an Active Directory, an LDS and a database with identity information? Can I model that in M?
No, I answered. Right now M is shackled by EDMX, which really only has a provider for SQL Server and Oracle. It is theoretically possible to enhance the M modeling superstructure to handle a multi-source database, but it isn’t done yet.
In general, everyone loved the talk, and I am looking forward to cleaning it up a bit and giving it a few more times. Thanks to Jack Freund and the IEEE Computer Society for allowing me to speak! Hope to see you all again sometime!