Leaning Into Windows

Kathleen Dollard's view of life and .NET development

Browse by Tags

All Tags » Code Generation (RSS)
MEF Assembly Granularity
I’ve been contemplating how to organize MEF assemblies. I think the processing I did establishing the first cut at organization, and the shake down of that strategy, may be interesting to other people designing MEF systems. As a quick review, MEF...

Posted by Kathleen | with no comments

Filed under: ,

Another View of Code Generation
Karl on WPF posted this on code generators. Karl appears to be largely talking about issues within existing MS code generation tools. The underlying problem, is that Microsoft does not have a code generation group that understands code generation from...

Posted by Kathleen | with no comments

Filed under:

Rethinking “Nearly VB”
Bill McCarthy added a comment to my blog which I wanted to answer: So why not use VB for the templates but C# for the initial output rather than some "Nearly VB" . Doesn't C# address every issue you've raised ? But I am curious as to...

Posted by Kathleen | with no comments

Filed under:

Template Languages and "Nearly VB"
The templates I’ve been talking about require very specific language features of the VB compiler and language neutral templates do not allow any ambiguity in the code output in the initial template. The template itself must be in VB because it’s required...

Posted by Kathleen | 3 comment(s)

Filed under:

Validation Information in Metadata
Mike asks: Just curious if your metadata also contains validation rules or not? Things like property is required or range of valid values. It could include them in three possible ways – it currently uses one and I’ve had two others working in the past...

Posted by Kathleen | 4 comment(s)

Filed under:

Runtime vs. Design/Compile Time

...

Posted by Kathleen | 7 comment(s)

Filed under: ,

Open Source
It’s occurred to me that if you are following this and my DNR TV show a logical reaction would be “OK, so that’s a lot of hot air, where do I get it?” I intend for all of this to be released Open Source, on whichever site s hot when I release it. I hope...

Posted by Kathleen | 3 comment(s)

Isolating Metadata
In code generation, metadata is the information about your application, generally about your database and definitions to express your data as business objects. If you use Entity Framework, your metadata is the edmx file which is displayed via the designers...

Posted by Kathleen | 1 comment(s)

CurrentTypeInfo and the Context Stack
Creating templates requires a lot of access to the thing you’re currently creating. That’s the current output type, which as I discussed in yesterday I suffix with “Info.” The CurrentTypeInfo is thus what you’re currently outputting. I neglected to clarify...

Posted by Kathleen | 1 comment(s)

Two Parallel Entities - Metadata and Info
One of the confusing things about templating is that you are writing two programs simultaneously and there is no way around it. My brilliant son may write a templating language for a class project, and this is exactly what he wants to address – that and...

Posted by Kathleen | 1 comment(s)

Inheritance and Templates
One of the most valuable things about templates written in .NET code of any style is the ability to use inheritance. This is classic inheritance where local state allows you to push functionality into base class methods that would become cumbersome and...

Posted by Kathleen | with no comments

.NET Template Organization
So, now that you know where I’m going with this – language neutral templates – I want to step back to the basics. Even if you don’t want to build language neutral templates, there are things to learn along the way about making good XML literal templates...

Posted by Kathleen | with no comments

The Punch Line
I mentioned a few days ago that there was a punch line for the XML Literal Code Generation. I planned to unveil this slowly, but it just sprung out of the box when Carl posted episode #102 (which I thought was due for next Friday. And I’m afraid that...

Posted by Kathleen | with no comments

XML Literal Code Genaration - Code again again
Crap. For now, I'm just removing the coloring. Paste this into VS for coloring. It's much prettier: Private Function MemberDataPortalFetch() As String ' TODO: Add special handing for timestamp Return _ <code> Private Overloads Sub DataPortal_Fetch...

Posted by Kathleen | with no comments

XML Literal Code Generation - Code again
OK, that code listing got friend on load. Let me try again. Private Function MemberDataPortalFetch() As String Return _ < code > Private Overloads Sub DataPortal_Fetch(ByVal criteria As Criteria) Using cn As New SqlConnection( <%= mObjectData...

Posted by Kathleen | with no comments

XML Literal Code Generation
You must use VB for XML Literal Code Generation. Sorry, that’s life. I don’t have a crystal ball on this, but for now even if you’re a C# programmer you’ve got to suck it up and use VB. The code you output can be VB or C# however, but the template itself...

Posted by Kathleen | 1 comment(s)

Let’s Talk Templates
Code generation templates have several competing pressures – they need to be easy to use and they need to be powerful. They need to be flexible but encourage best practices. If you ever say “my templates got me started then I had to customize them” you...

Posted by Kathleen | 5 comment(s)

Why You Care About System.AddIn
When I was fighting with AppDomains to support XML Linq code generation in my new Workflow based code generator, Bill McCarthy said “Hey did you look at System.AddIn” and I said “No, silly I’m not writing add-ins.” Well, a few months later, I’m still...

Posted by Kathleen | with no comments

What? No Code?!?
When I say things like “writing code bad, other stuff good” it comes out sounding radical and there a couple natural points of pushback. The most significant one is “yeah right, we put our business information in something else and that changes too -...

Posted by Kathleen | with no comments

Filed under: ,

Legacy Lessons
Visual Basic 3 to Visual Basic 6 had many lessons to teach us. We did not as an industry learn these lessons, so we are in the midst of repeating them. One of the most important lessons was not to combine business logic and user interface code. Well DUH...

Posted by Kathleen | 3 comment(s)

Filed under: ,

More Posts Next page »