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!
At Code and Coffee yesterday, Tim Wingfield suggested that I blog about my Build Button, so here it is.
A while back I got myself a Griffin Technologies PowerMate. This device is designed as a multimedia controller. Read: Volume knob. It has six events:
- Turn left
- Turn right
- Press and hold
- Press and turn left
- Press and turn right
I left the Turn left and turn right events violume for Media Player, but I set Press to be <CTRL> + <SHIFT> + B
That's right, build, baby.
So, when I get to finidh a method, I can just up and smack the button, and the project compiles. It's quite an experience. I used to have Press and hold set to <F5> but now I think I will have it run the unit tests since that is how I tend to develop these days.
Any, it's not a cheap thrill at $45, but I still think it is worth it.
By the by - i also have an Optimus Mini Three, which I recommend for the remarkably high geek factor.
I find myself needing to write a federated identity proof of concept for a client of ICC. I got started with three downloads:
I wanted to get a good foundation, so I started with the training kit. As an author, I heavily recommend everyone do this. The days when you could just jump in and start hacking are long gone. There are frameworks on top of frameworks in today’s development environments and learning the right path is paramount.
Getting started with a lab
The lab I started with was Web Sites and Identity, becasue it solved the particular problem that I needed solved. Your might be different. The prerequisites included:
- Microsoft® Windows® Vista SP2 (32-bits or 64-bits) , Microsoft® Windows Server 2008 SP2 (32-bit or 64-bit), Microsoft® Windows Server 2008 R2, Microsoft® Windows® 7 RTM (32-bits or 64-bits)
- Microsoft® Internet Information Services (IIS) 7.0
- Microsoft® .NET Framework 3.5
- Microsoft® Visual Studio 2008
- Microsoft® SQL Express 2005 (or later)
- Microsoft® Windows Identity Foundation Runtime
- Microsoft® Windows Identity Foundation SDK
The basics needed to be present, but things like Powershell permissions and IIS 7 configurations have built-in installers that ran easily ran from the dependency checker.
You are then asked to install snippets for code and XML. I put them in the My Snippets folder for Visual Studio 2008.
After installing a few certificates, the labs were set up and ready to go.
Working the lab
In working with the lab, it seems that the setup scripts failed to supply the SSL binding for the default web. I learned a fix in this ScottGu post after making this post to IIS.net.
to fix it you just need to go to IIS7 and do these steps:
- Select the Default Web Site
- Click Bindings… under Edit Site on the right hand command panel
- Click the https binding and click the Edit… button
- You’ll see that SSL Cert dropdown has No Binding Selected. Change it to STSTestCert.
- Click OK and Close.
That’s all there is to it. The site will no longer give you Cannot connect errors.
Anyway, I like the lab and I like the WIF. Generally, it has the same problem as all of the W*F patterns that Microsoft provides. It is configuration over convention and there are SO many options that it is confusing. WIF tries to be everything to everyone. To find the exact situation that suits your needs will require a little digging through the lab.
I ran into a problem today where my Visual Studio 2008 install gave me the “The application cannot start” error after I had installed the RC of VS 2010. After poking around, I found this post which helped me out a lot.
I had to copy these files from “C:\Program Files (x86)\Common Files\microsoft shared\MSEnv”:
and paste them into “C:\Program Files (x86)\Microsoft Visual Studio 9.0\Common7\IDE”
Then everything worked great. No registration was needed.