Pages

Thursday, June 12, 2008

Making VB simple with XAML / LINQ. Oslo Microsoft's modeling strategy!

Based on my recent study I would like to summarize a few things, and thought would share with you guys!

http://blogs.msdn.com/bethmassi/archive/2008/06/12/dynamic-ui-with-wpf-and-linq.aspx

Based on this blog, you can see than VB.NET can directly have XML and LINQ and can be interpreted by the compiler.

The way programming IDE's/libraries are being introduced/modified now a days make sure it is not required for one to know everything. What I mean by this?

See the code in the blog (mentioned above), you see XML as XAML, at compile time you would come to know if "" can have ColumnDefinition, if not based on the schema - http://schemas.microsoft.com/winfx/2006/xaml/presentation, the error will pop up. See the way XML is being used, it is not within quotes which mean it is directly understood by the compiler. The other thing is LINQ, one can use database calls (update/delete/insert/alter etc) directly like what we do with objects, your table is treated like an object. So say if you want to see the properties of column, when you key in column and 'dot' you get the ColumnName as a property. Again you get things right away in compile time.
Having said both the above, the third parameter is the way XAML and LINQ are combined, see the statement Name=<%= column.ColumnName & "Label" %>, here Name is a XML element and column.ColumnName comes from LINQ. And all these are inside the VB language.

Recently I saw a presentation at Microsoft Tech-ED (Link for tech-ed -> http://www.microsoft.com/presspass/events/teched/default.mspx, see Bill Gates keynote) where they showed the progress on visual studio, which can access a DB2/ORACLE database like an object model. There is a huge focus on modeling, see these links - http://www.microsoft.com/soa/products/oslo.aspx and http://arstechnica.com/journals/microsoft.ars/2008/02/07/microsoft-working-on-new-declarative-programming-language.

Modeling allows one to conceptually visualize what is happening inside a project/code. Say you are asked to fix a particular code for example related to security aspect of the product, in order work on that you might have to encompass things that are non-security related (things like GUI etc), so this makes things tougher. What if there is a model which allows you to extract the set of things that you might like to see at the moment. That model will have all the blocks and inter-relations defined, and if you pull up a security block from the model you get all the code that is only related to what you are looking for. So you don't have to worry about the other things in the project.

No comments: