<?xml version="1.0" encoding="UTF-8"?><!-- generator="wordpress/2.3.3" -->
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	>
<channel>
	<title>Comments on: T4 Architecture</title>
	<link>http://www.olegsych.com/2008/05/t4-architecture/</link>
	<description>this.Write(code);</description>
	<pubDate>Tue, 18 Nov 2008 15:09:48 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.3.3</generator>
		<item>
		<title>By: Daniel</title>
		<link>http://www.olegsych.com/2008/05/t4-architecture/#comment-378</link>
		<dc:creator>Daniel</dc:creator>
		<pubDate>Thu, 07 Aug 2008 18:40:59 +0000</pubDate>
		<guid>http://www.olegsych.com/2008/05/t4-architecture/#comment-378</guid>
		<description>Oleg,

I first owe you the common courtesy of making time to dive into all the great material posted here and elsewhere. Perhaps then I will be able to engage in more substantive exhange. The one thing I DO know very well is the source code for our good ole' MFC/MDI app.

More good news - the IDE comes with  an alternative compliler. A cursory test run compiled about half of the source system's functional code to native DLL, and also produced a non-human-readable native-compiled version of the IDE's proprietary, outline-style include library file (*.APC).

Might that new DLL then be reflected back into new cpp9 source code? that would leave the remaning half to be targeted with the DSL/TT approach. I have not yet accomplished the creation of that "IDE DSL".

I believe we are fortunate in that our amcient version of the legacy IDE (circa '98) actually precedes the introduction of COM/COM+ being wrapped into the proprietary platform.

Sp, in terms of the VS2008 DSL designer options, would my envisioned DSL of that object oriented, MFC based, outline-styled IDE be most akin to a (conceptual)component model? a class diagramer? Is a task flow model of the IDE's run-time behavior called for? If this "IDE DSL" is a success, will that mean that the platform's  proprietary compiler can be "Put out to pasture? And finally, does the removal of licensing restrictions by microstoft on the MFC libraries present any novel opportunities to expedite/facilitate such a project, given that the sealed class templates made available to the coder within the legacy IDE are, to my eye at least, really just MFC instance factories? 

I find that the idea of creating a visual language and debugger to model "another" ide puts me in mind of learning recursion years ago in college. Think about it TOO long and I start to feel a bit dizzy.. then I have to stand up and whistle for a while....

Thanks!
Dan</description>
		<content:encoded><![CDATA[<p>Oleg,</p>
<p>I first owe you the common courtesy of making time to dive into all the great material posted here and elsewhere. Perhaps then I will be able to engage in more substantive exhange. The one thing I DO know very well is the source code for our good ole&#8217; MFC/MDI app.</p>
<p>More good news - the IDE comes with  an alternative compliler. A cursory test run compiled about half of the source system&#8217;s functional code to native DLL, and also produced a non-human-readable native-compiled version of the IDE&#8217;s proprietary, outline-style include library file (*.APC).</p>
<p>Might that new DLL then be reflected back into new cpp9 source code? that would leave the remaning half to be targeted with the DSL/TT approach. I have not yet accomplished the creation of that &#8220;IDE DSL&#8221;.</p>
<p>I believe we are fortunate in that our amcient version of the legacy IDE (circa &#8216;98) actually precedes the introduction of COM/COM+ being wrapped into the proprietary platform.</p>
<p>Sp, in terms of the VS2008 DSL designer options, would my envisioned DSL of that object oriented, MFC based, outline-styled IDE be most akin to a (conceptual)component model? a class diagramer? Is a task flow model of the IDE&#8217;s run-time behavior called for? If this &#8220;IDE DSL&#8221; is a success, will that mean that the platform&#8217;s  proprietary compiler can be &#8220;Put out to pasture? And finally, does the removal of licensing restrictions by microstoft on the MFC libraries present any novel opportunities to expedite/facilitate such a project, given that the sealed class templates made available to the coder within the legacy IDE are, to my eye at least, really just MFC instance factories? </p>
<p>I find that the idea of creating a visual language and debugger to model &#8220;another&#8221; ide puts me in mind of learning recursion years ago in college. Think about it TOO long and I start to feel a bit dizzy.. then I have to stand up and whistle for a while&#8230;.</p>
<p>Thanks!<br />
Dan</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Oleg Sych</title>
		<link>http://www.olegsych.com/2008/05/t4-architecture/#comment-370</link>
		<dc:creator>Oleg Sych</dc:creator>
		<pubDate>Thu, 07 Aug 2008 02:45:39 +0000</pubDate>
		<guid>http://www.olegsych.com/2008/05/t4-architecture/#comment-370</guid>
		<description>Daniel,

It is difficult to say, knowing so little about your system. You can definitely generate C++ code using T4. If the DSL of your legacy IDE is already used to generate MFC code and provides enough metadata to generate a significant portion of the system, you may be able to leverage T4 to generate equivalent .NET (C#, VB) code. Otherwise, porting existing source code to latest version of C++ and gradually introducing C++/CLI may be the best option.

Oleg</description>
		<content:encoded><![CDATA[<p>Daniel,</p>
<p>It is difficult to say, knowing so little about your system. You can definitely generate C++ code using T4. If the DSL of your legacy IDE is already used to generate MFC code and provides enough metadata to generate a significant portion of the system, you may be able to leverage T4 to generate equivalent .NET (C#, VB) code. Otherwise, porting existing source code to latest version of C++ and gradually introducing C++/CLI may be the best option.</p>
<p>Oleg</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Daniel</title>
		<link>http://www.olegsych.com/2008/05/t4-architecture/#comment-341</link>
		<dc:creator>Daniel</dc:creator>
		<pubDate>Fri, 01 Aug 2008 19:42:41 +0000</pubDate>
		<guid>http://www.olegsych.com/2008/05/t4-architecture/#comment-341</guid>
		<description>Most interesting topic. I am looking for feedback on the feasibility for leveraging a DSL of our legacy IDE in order to generate a C++ 9.0 analog of my agency's legacy MFC "gray lady". She is a complex combo of static and dynamic libraries accessing MFC, Win32 API and active X automation. 

The good news (I think)is that I have been able to port and compile the legacy IDE's SDK in a C++ 9.0 VS2008 project. As far as I can tell, this is a complete map of the visual, IDE outline and language layers which comprise the IDE. In addition, the legacy source libraries may be saved as text.

With your knowledge of this amazing T4 code generation capability, is there any hint of a path to .NET here, whether that be a full portage or some combination with the PInvoke/Marshalling capabilities in C++ 9?

Thanks for any insight you might provide!

Daniel</description>
		<content:encoded><![CDATA[<p>Most interesting topic. I am looking for feedback on the feasibility for leveraging a DSL of our legacy IDE in order to generate a C++ 9.0 analog of my agency&#8217;s legacy MFC &#8220;gray lady&#8221;. She is a complex combo of static and dynamic libraries accessing MFC, Win32 API and active X automation. </p>
<p>The good news (I think)is that I have been able to port and compile the legacy IDE&#8217;s SDK in a C++ 9.0 VS2008 project. As far as I can tell, this is a complete map of the visual, IDE outline and language layers which comprise the IDE. In addition, the legacy source libraries may be saved as text.</p>
<p>With your knowledge of this amazing T4 code generation capability, is there any hint of a path to .NET here, whether that be a full portage or some combination with the PInvoke/Marshalling capabilities in C++ 9?</p>
<p>Thanks for any insight you might provide!</p>
<p>Daniel</p>
]]></content:encoded>
	</item>
</channel>
</rss>
