fluentjdf Discussions Rss Feedhttp://fluentjdf.codeplex.com/discussionsfluentjdf Discussions Rss DescriptionNew Post: Is this project still alive?http://fluentjdf.codeplex.com/discussions/586147<div style="line-height: normal;">Understandable :)
<br />
<br />
I see this project is also hosted on your github organization. I don't really know enough about the JDF process to be a good steward of the project, but it seems like that's a much more friendly development environment than CodePlex.
<br />
<br />
If the same build is loaded there, I'd like to see that page be the primary source for FluentJDF (maybe just putting a message on the front of this project's page)
<br />
<br />
As I work through my project, I'll put any pull requests through that project, rather than via subversion or w/e CodePlex is using.<br />
</div>killnineThu, 12 Mar 2015 16:42:09 GMTNew Post: Is this project still alive? 20150312044209PNew Post: Is this project still alive?http://fluentjdf.codeplex.com/discussions/586147<div style="line-height: normal;">
<div dir="ltr">Sorry to say it died when I stopped working in the digital printing business full time a little more than 3 years ago. If you know anyone interested in taking it over, let me know.
<br>
<div id="WISESTAMP_SIG_76babf938d13f61a3a0da1aae6d4b0c8">
<div>
<div style="max-width:600px; direction:ltr">
<div id="migrate_sig" style="margin:8px 8px 0 0">
<div style="font-size:11px">
<div style="font-size:12px">
<p><span style="font-family:'arial black','avant garde'">Tom Cabanski</span><span style="font-family:arial,helvetica,sans-serif"><br>
</span><span style="font-family:arial,helvetica,sans-serif; font-size:small">5702 Kendall Hill Ln</span><br>
<span style="font-family:arial,helvetica,sans-serif; font-size:small">Sugar Land, TX 77479</span><br>
<span style="font-family:arial,helvetica,sans-serif"><span style="font-size:small">832-766-5961</span><em><br>
</em></span></p>
</div>
<div style="clear:both">
<div>
<div style="font:13pt Arial; color:#3a3637; margin-bottom:5px"></div>
<table border="0" style="width:440px">
<tbody>
<tr valign="top">
<td style="font:8pt 'Arial Narrow',Arial; color:#4e4b4c; padding-left:10px"></td>
</tr>
</tbody>
</table>
</div>
</div>
<div><a href="http://www.facebook.com/profile.php?id=100000173096948" target="_blank"><img src="https://s3.amazonaws.com/images.wisestamp.com/icons/facebook.png" width="16" height="16"></a>
<a href="http://www.linkedin.com/in/tomcabanski" target="_blank"><img src="https://s3.amazonaws.com/images.wisestamp.com/icons/linkedin.png" width="16" height="16"></a></div>
</div>
</div>
<div style="clear:both"></div>
<div style="font-size:12px; margin:8px 8px 0 0">
<div>My Blog <a href="http://tom.cabanski.com/2015/03/02/setting-ec2-volume-tags-for-cost-tracking/" target="_blank">
Setting EC2 Volume Tags for Cost Tracking</a></div>
</div>
<div style="display:inline-block; margin:8px 8px 0 0; width:470px"><img src="https://s3.amazonaws.com/images.wisestamp.com/icons/twitter.png" style="float:left; margin-right:5px; margin-top:7px">
<div style="width:440px; padding:7px 0px 5px 0px">
<div style="height:17px; width:470px; line-height:15px; text-align:justify"><a href="https://twitter.com/tcabanski" target="_blank" style="text-decoration:none; color:#55acee; font-size:11px; font-family:Arial,Helvetica,sans-serif">Latest Tweet:</a>
<span style="color:#a0a0a0; font-size:11px; font-family:Arial; font-weight:normal">
The distance between failure and success is often nothing more than hard work.</span>
<a href="https://twitter.com/tcabanski/statuses/569472874802585601" style="color:#55acee; font-size:11px; float:right; margin-top:3px">
Read More</a> </div>
</div>
</div>
<div id="WS_promo" style="width:auto; padding-top:2px; font-size:10px; border-top-width:1px; border-top-style:solid; border-top-color:rgb(238,238,238); margin-top:10px; display:table; direction:ltr; line-height:normal; border-spacing:initial">
<img src="http://ws-stats.appspot.com/ga/pixel.png?yes__count=1&e=promo_45"> <a href="http://ws-stats.appspot.com/r?rdata=eyJydXJsIjogImh0dHA6Ly93d3cud2lzZXN0YW1wLmNvbS8/dXRtX3NvdXJjZT1leHRlbnNpb24mdXRtX21lZGl1bT1lbWFpbCZ1dG1fY2FtcGFpZ249cHJvbW9fNDUiLCAiZSI6ICJwcm9tb180NV9jbGljayJ9" style="color:rgb(111,111,111); text-decoration:none">
<span style="color:rgb(111,111,111)">Get a signature like this:</span> </a><span style="color:rgb(165,3,16)"><a href="http://ws-stats.appspot.com/r?rdata=eyJydXJsIjogImh0dHA6Ly93d3cud2lzZXN0YW1wLmNvbS8/dXRtX3NvdXJjZT1leHRlbnNpb24mdXRtX21lZGl1bT1lbWFpbCZ1dG1fY2FtcGFpZ249cHJvbW9fNDUiLCAiZSI6ICJwcm9tb180NV9jbGljayJ9" style="color:rgb(165,3,16); font-weight:bold">Click
here!</a> </span></div>
</div>
<img src="https://ws-stats.appspot.com/ga/pixel.png?yes__count=true"></div>
</div>
</div>
<div><br>
<div></div>
</div>
</div>tcabanskiThu, 12 Mar 2015 13:14:28 GMTNew Post: Is this project still alive? 20150312011428PNew Post: Is this project still alive?http://fluentjdf.codeplex.com/discussions/586147<div style="line-height: normal;">Anyone still supporting this project? Just wondering if there's a list of open issues or some newer documentation to be had.
<br />
<br />
So happy to see a C# implementation of JDF and was also pleasantly surprised by the addition of Graybox functionality. Don't want to see this fall by the wayside.<br />
</div>killnineThu, 12 Mar 2015 13:04:31 GMTNew Post: Is this project still alive? 20150312010431PNew Post: Message.Transmit(Jmf url) Response Errorhttp://fluentjdf.codeplex.com/discussions/438441<div style="line-height: normal;">Message.Transmit( jmf url) and submisssion is on hold queue
<br />
got success result but in our print control hold queue screen we are not getting the file
<br />
and in the Tranmisiion part collection and ticket and ticketpart is null and in message and message part we are getting data and also hasticket is false and hasmessage is true
<br />
<br />
<br />
var message1 = Message.Create().AddCommand().OpenQueue().AddCommand().SubmitQueueEntry().With().Ticket(ticket).Message;
<br />
<br />
I have little bit confusion in the above code submitqueryentry().with().ticket() it only give on cid in the submit query param url is this correct?
<br />
<br />
If anyone tested the workflow plz give some idea, i am struck now
<br />
<br />
With Regards
<br />
Narasappa <br />
</div>narasappacjFri, 29 Mar 2013 13:54:01 GMTNew Post: Message.Transmit(Jmf url) Response Error 20130329015401PNew Post: Fluent Jdf and Castle Windsor 3.2.0http://fluentjdf.codeplex.com/discussions/433523<div style="line-height: normal;">Is there any change that there might be a problem with Fluent Jdf and Castle Windsor 3.2.0?<br />
<br />
When I run my test app I'm getting the message:<br />
Method 'Resolve' in type 'Infrastructure.Container.CastleWindsor.NonTrackedTransientLifestyle' from assembly 'Infrastructure.Container.CastleWindsor, Version=0.1.3.0, Culture=neutral, PublicKeyToken=null' does not have an implementation.<br />
<br />
Which to me indicates that the Fluent Jdf assembly is using Castle Windsor 1.3.0 while my application tries to use 3.2.0.<br />
<br />
BTW is this package and the software still maintained?<br />
<br />
Regards,<br />
<br />
Albert van Peppen<br />
</div>TMBMon, 18 Feb 2013 11:42:43 GMTNew Post: Fluent Jdf and Castle Windsor 3.2.0 20130218114243ANew Post: Fluent JDF API Documentationhttp://fluentjdf.codeplex.com/discussions/406537<div style="line-height: normal;">
<p>the link on the website is broken. Anyone who got it ??</p>
</div>ihsaannWed, 12 Dec 2012 15:58:42 GMTNew Post: Fluent JDF API Documentation 20121212035842PNew Post: Training Experiencehttp://fluentjdf.codeplex.com/discussions/268271<div style="line-height: normal;"><p>Hello, please contact Tom Cabanaski at tom@cabanski.com. He may be able to provide training for you.&nbsp;</p></div>jperry109Tue, 26 Jun 2012 12:38:44 GMTNew Post: Training Experience 20120626123844PNew Post: Training Experiencehttp://fluentjdf.codeplex.com/discussions/268271<div style="line-height: normal;"><p>Hi</p>
<p>Where can I find this online training? (Link please)</p>
<p>&nbsp;</p>
<p>Thanks</p>
<p>A</p></div>AsscMon, 25 Jun 2012 08:58:05 GMTNew Post: Training Experience 20120625085805ANew Post: private namespace supporthttp://fluentjdf.codeplex.com/discussions/274276<div style="line-height: normal;"><p>An updated code snippet incorporating what I learned above.</p>
<div style="color: black; background-color: white;">
<pre><span style="color: blue;">public</span> <span style="color: blue;">void</span> PrivateNamespaceTest()
{
XNamespace myNS = <span style="color: #a31515;">"http://www.MyCompany.com/MySchema 1 1"</span>;
<span style="color: blue;">var</span> myNSAlias = <span style="color: #a31515;">"MyCompany"</span>;
<span style="color: blue;">var</span> intentNode = Ticket.CreateIntent();
<span style="color: green;">// &lt;JDF Type="Product" xsi:type="Product" ID="R_959d9" Status="Waiting" JobID="J_771ee" Version="1.4" </span>
<span style="color: green;">// xmlns="http://www.CIP4.org/JDFSchema_1_1"&gt;</span>
<span style="color: green;">// xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" </span>
<span style="color: green;">// &lt;/JDF&gt;</span>
<span style="color: blue;">var</span> ticket = intentNode.Ticket;
<span style="color: green;">// add a private namespace</span>
intentNode.RootJdfNode.Element.SetAttributeValue(XNamespace.Xmlns.GetName(myNSAlias), myNS);
<span style="color: green;">// xmlns:MyCompany="http://www.MyCompany.com/MySchema 1 1" </span>
<span style="color: green;">// Add a BindingIntent resource</span>
<span style="color: blue;">var</span> bindingIntentResource = intentNode
.WithInput().BindingIntent().With().Id(<span style="color: #a31515;">"myId"</span>);
<span style="color: green;">// &lt;JDF Type="Product" xsi:type="Product" ...&gt;</span>
<span style="color: green;">// &lt;ResourcePool&gt;</span>
<span style="color: green;">// &lt;BindingIntent ID="myId" Class="Intent" /&gt;</span>
<span style="color: green;">// &lt;/ResourcePool&gt;</span>
<span style="color: green;">// &lt;ResourceLinkPool&gt;</span>
<span style="color: green;">// &lt;BindingIntentLink rRef="myId" Usage="Input" /&gt;</span>
<span style="color: green;">// &lt;/ResourceLinkPool&gt;</span>
<span style="color: green;">// &lt;/JDF&gt;</span>
<span style="color: green;">// set private attribute</span>
bindingIntentResource
.Attribute(myNS + <span style="color: #a31515;">"MyAttribute"</span>, <span style="color: #a31515;">"123"</span>);
<span style="color: green;">// &lt;BindingIntent ID="myId" Class="Intent" MyCompany:MyAttribute="123" /&gt;</span>
<span style="color: green;">// retrieve private attribute value</span>
<span style="color: blue;">var</span> mySpecialValue = bindingIntentResource.Element.GetAttributeValueOrNull(myNS + <span style="color: #a31515;">"MyAttribute"</span>);
<span style="color: green;">// create a private resource</span>
<span style="color: blue;">var</span> privateResource = intentNode.WithInput().ResourceWithName(myNS + <span style="color: #a31515;">"MyPrivateResource"</span>);
<span style="color: green;">// &lt;MyCompany:MyPrivateResource /&gt;</span>
<span style="color: green;">// find a private resource</span>
<span style="color: blue;">var</span> privateResource2 = ticket.GetIntent().WithInput(myNS + <span style="color: #a31515;">"MyPrivateResource"</span>).Elements.FirstOrDefault();
<span style="color: green;">// create private node</span>
<span style="color: blue;">var</span> privateNode = privateResource.AddNode(myNS + <span style="color: #a31515;">"myNode"</span>);
<span style="color: green;">// &lt;MyCompany:myNode /&gt;</span>
<span style="color: green;">// create a private process (Currently not supported)</span>
}
</pre>
</div></div>selfcomposedTue, 04 Oct 2011 14:52:53 GMTNew Post: private namespace support 20111004025253PNew Post: private namespace supporthttp://fluentjdf.codeplex.com/discussions/274276<div style="line-height: normal;"><p>Thanks, I'm still wrapping my mind around the fluent paradigm.&nbsp; (I think a "railroad track" diagram (like I used to have in my Pascal book)&nbsp;would help make the transitions more obvious, say, from an&nbsp;intent node to a resource.&nbsp; Right now I'm just wandering through the fog...)</p>
<p>I think passing an array of XNames would work for creating private&nbsp;processes.</p></div>selfcomposedFri, 30 Sep 2011 00:38:31 GMTNew Post: private namespace support 20110930123831ANew Post: How to add a Process node to an existing JDF documenthttp://fluentjdf.codeplex.com/discussions/274288<div style="line-height: normal;"><p>You can access the builder from any XElement using the appropriate extension method as follows:</p>
<p>
<pre>//Builder for JDF node. Throws exception if element is not JDF
element.ModifyJdfNode()...
//Builder for JMF node. Throws exception if element is not JMF
element.ModifyJmfNode()...</pre>
</p></div>tcabanskiThu, 29 Sep 2011 21:26:50 GMTNew Post: How to add a Process node to an existing JDF document 20110929092650PNew Post: private namespace supporthttp://fluentjdf.codeplex.com/discussions/274276<div style="line-height: normal;"><p>There is some support for foreign namespaces, but it is not complete yet. &nbsp;The attribute functions is already there. &nbsp;It is possible to add foreign namespace resources like so:</p>
<pre>intentNode.WithInput().ResourceWithName(myNS + "foo");</pre>
<p>You can arbitrary add foreign namespace elements using code like the following:</p>
<pre>intentNode.WithInput().ResourceWithName(myNS + "myResource").AddNode(myNS + "nodeName");</pre>
<p>We plan to add support for foreign namespace processes. &nbsp;We would probably add signatures for AddProcess() and CreateProcess() that take an array of XNames in addition to the ones that takes an array of strings. &nbsp;Any thoughts?</p></div>tcabanskiThu, 29 Sep 2011 19:28:58 GMTNew Post: private namespace support 20110929072858PNew Post: How to add a Process node to an existing JDF documenthttp://fluentjdf.codeplex.com/discussions/274288<div style="line-height: normal;">
<p>So far, all the examples I've seen build a JDF document from scratch.&nbsp;</p>
<p>But suppose I want to flesh out an existing JDF document by adding&nbsp;process nodes into an intent node.&nbsp; It seems the builder classes aren't accessible except when the nodes are being created, thus the fluent goodness (like managing resource links)
is inaccessible when editing a pre-existing document.</p>
<p>Or did I miss something obvious?</p>
<p>&nbsp;</p>
</div>selfcomposedThu, 29 Sep 2011 17:31:04 GMTNew Post: How to add a Process node to an existing JDF document 20110929053104PNew Post: private namespace supporthttp://fluentjdf.codeplex.com/discussions/274276<div style="line-height: normal;">
<p>Private attributes are well supported.</p>
<p>But I couldn't find a way to add&nbsp;a private resource within the fluent paradigm.&nbsp; The builder classes tend to have internal constructors, so there is no way to supply a private namespace.&nbsp;&nbsp; The simplest hack is to make the &#65279;ResourceNodeBuilder
constructor public, and call it directly (non-fluently).&nbsp;&nbsp; Is there a better approach?</p>
<p>&nbsp;I also failed to add a private JDF process fluently.&nbsp;&nbsp; The types are passed as strings, and I think they need XNames instead&nbsp;to allow for namespaces.</p>
<p>FWIW, here's my private namespace exploration code.</p>
<div style="color:black; background-color:white">
<pre><span style="color:blue">public</span> <span style="color:blue">void</span> PrivateNamespaceTest()
{
XNamespace myNS = <span style="color:#a31515">&quot;http://www.MyCompany.com/MySchema 1 1&quot;</span>;
<span style="color:blue">var</span> myNSAlias = <span style="color:#a31515">&quot;MyCompany&quot;</span>;
<span style="color:blue">var</span> intentNode = Ticket.CreateIntent();
<span style="color:green">// &lt;JDF Type=&quot;Product&quot; xsi:type=&quot;Product&quot; ID=&quot;R_959d9&quot; Status=&quot;Waiting&quot; JobID=&quot;J_771ee&quot; Version=&quot;1.4&quot; </span>
<span style="color:green">// xmlns=&quot;http://www.CIP4.org/JDFSchema_1_1&quot;&gt;</span>
<span style="color:green">// xmlns:xsi=&quot;http://www.w3.org/2001/XMLSchema-instance&quot; </span>
<span style="color:green">// &lt;/JDF&gt;</span>
<span style="color:blue">var</span> ticket = intentNode.Ticket;
<span style="color:green">// add a private namespace</span>
intentNode.RootJdfNode.Element.SetAttributeValue(XNamespace.Xmlns.GetName(myNSAlias), myNS);
<span style="color:green">// xmlns:MyCompany=&quot;http://www.MyCompany.com/MySchema 1 1&quot; </span>
<span style="color:green">// Add a BindingIntent resource</span>
<span style="color:blue">var</span> bindingIntentResource = intentNode
.WithInput().BindingIntent().With().Id(<span style="color:#a31515">&quot;myId&quot;</span>);
<span style="color:green">// &lt;JDF Type=&quot;Product&quot; xsi:type=&quot;Product&quot; ...&gt;</span>
<span style="color:green">// &lt;ResourcePool&gt;</span>
<span style="color:green">// &lt;BindingIntent ID=&quot;myId&quot; Class=&quot;Intent&quot; /&gt;</span>
<span style="color:green">// &lt;/ResourcePool&gt;</span>
<span style="color:green">// &lt;ResourceLinkPool&gt;</span>
<span style="color:green">// &lt;BindingIntentLink rRef=&quot;myId&quot; Usage=&quot;Input&quot; /&gt;</span>
<span style="color:green">// &lt;/ResourceLinkPool&gt;</span>
<span style="color:green">// &lt;/JDF&gt;</span>
<span style="color:green">// set private attribute</span>
bindingIntentResource
.Attribute(myNS &#43; <span style="color:#a31515">&quot;MyAttribute&quot;</span>, <span style="color:#a31515">&quot;123&quot;</span>);
<span style="color:green">// &lt;BindingIntent ID=&quot;myId&quot; Class=&quot;Intent&quot; MyCompany:MyAttribute=&quot;123&quot; /&gt;</span>
<span style="color:green">// retrieve private attribute value</span>
<span style="color:blue">var</span> mySpecialValue = bindingIntentResource.Element.GetAttributeValueOrNull(myNS &#43; <span style="color:#a31515">&quot;MyAttribute&quot;</span>);
<span style="color:green">// create a private resource (requires the ResourceNodeBuilder constructor be public instead of internal)</span>
<span style="color:blue">var</span> privateResource = <span style="color:blue">new</span> FluentJdf.LinqToJdf.Builder.Jdf.ResourceNodeBuilder(intentNode, myNS &#43; <span style="color:#a31515">&quot;MyPrivateResource&quot;</span>, ResourceUsage.Input, <span style="color:#a31515">&quot;r123&quot;</span>);
<span style="color:green">// &lt;MyCompany:MyPrivateResource ID=&quot;r123&quot; /&gt;</span>
<span style="color:green">// find a private resource</span>
<span style="color:blue">var</span> privateResource2 = ticket.GetIntent().WithInput(myNS &#43; <span style="color:#a31515">&quot;MyPrivateResource&quot;</span>).Elements.FirstOrDefault();
<span style="color:green">// create a private process</span>
<span style="color:green">// Currently not supported (that I can see)</span>
}
</pre>
</div>
<p>&nbsp;</p>
<p>&nbsp;</p>
</div>selfcomposedThu, 29 Sep 2011 15:54:21 GMTNew Post: private namespace support 20110929035421PNew Post: Things to improvehttp://fluentjdf.codeplex.com/discussions/273896<div style="line-height: normal;"><p>There is no doubt that Fluent JDF could best be described as a library for building JDF Agents. &nbsp; I got in the habit of using the word "client" here because the term "JDF agent" is not something the average .NET developer new to JDF knows anything about. &nbsp;Our docs and home page will probably become more educational about JDF in general over time so we can start using the right terminology. &nbsp;&nbsp;</p>
<p>I certainly appreciate your feedback. &nbsp;</p></div>tcabanskiTue, 27 Sep 2011 14:09:31 GMTNew Post: Things to improve 20110927020931PNew Post: Things to improvehttp://fluentjdf.codeplex.com/discussions/273896<div style="line-height: normal;"><blockquote style="padding-right: 0.25em; padding-left: 0.25em; padding-bottom: 0px; margin: 0.25em 1em 0px; padding-top: 0px; font-style: italic; border: #ccc 0.1em solid;"><strong>tcabanski wrote:</strong><br />
<div>
<p>"Fluent JDF is oriented towards building JDF clients."</p>
</div>
</blockquote>
<p>More precisely,&nbsp;FluentJDF is oriented toward building JDF <em>agents.&nbsp;</em>&nbsp;(Agents in a JDF workflow are responsible for writing JDF.)&nbsp; Whether the agent (and sending code) is in a <em>client </em>depends on the application.&nbsp;</p>
<p>I don't fault this project for its youth.&nbsp; The project needs to grow, and I'm pointing out the growth areas most valuable to me.&nbsp; BTW, your marketing guy put me up to this. =)</p>
<p>&nbsp;</p></div>selfcomposedTue, 27 Sep 2011 13:38:03 GMTNew Post: Things to improve 20110927013803PNew Post: Things to improvehttp://fluentjdf.codeplex.com/discussions/273896<div style="line-height: normal;"><div>
<p>As our mission states, Fluent JDF is oriented towards building JDF clients. &nbsp;Our goal is to make developing .NET clients easier and we have already made significant progress in that area. &nbsp;We realize the documentation and examples are thin, but that is typical in the early days of any open source effort. &nbsp;&nbsp;It's early days in the project and there is certainly a long way to go. &nbsp;</p>
<p>To date we have focused on code and not documentation. &nbsp;That is pretty typical for open source. We put together the Nuget distribution because it is a good way to make things a little easier for folks with up to date tooling. &nbsp; We do realize the bootstrap can be tricky and will eventually have more samples, documentation and perhaps even scripts in the Nuget package easier. &nbsp;For now, you'll have to contribute at least a little elbow grease to put things together for yourself especially if you can't use Nuget.</p>
<p>We believe strongly in using best of breed libraries wherever possible. &nbsp;That is why we will continue to utilize a plethora of open source libraries. &nbsp; We tend to stay on the latest release of our open source dependencies. &nbsp; Our command-line build brings down all the right dependencies even if you don't have the Nuget tooling in VS.NET. &nbsp;&nbsp;</p>
<p>The beauty of open source is the opportunity to contribute. &nbsp;You can always fork the code and make a pull request. &nbsp;We would be happy to accept contributions to the documentation. &nbsp;We would also be happy to cross-link good blog entries on how to use Fluent JDF.</p>
<p>Internally, we are working on the controller framework, which we call the JDF Workflow Foundation (JWF). &nbsp;The initial release will include the controller framework and basic message handling. &nbsp;Things like a signal registry and async messaging support are planned. &nbsp;This product may become open source but will certainly have a commercial license component. &nbsp;Usage is free for development and free for small deployments. &nbsp;We will be announcing more on JWF in the near future.</p>
<p>&nbsp;</p>
</div></div>tcabanskiTue, 27 Sep 2011 10:38:18 GMTNew Post: Things to improve 20110927103818ANew Post: Things to improvehttp://fluentjdf.codeplex.com/discussions/273896<div style="line-height: normal;">
<p>On the positive side, thanks to Onpoint On Demand&nbsp;for a valuable contribution to the open source community.&nbsp;</p>
<p>On the down side...</p>
<p><strong>Tutorial</strong></p>
<p>I worked through the&nbsp;First Look at Fluent JDF tutorial.&nbsp; If the intent was to amaze, it succeeded.&nbsp; If the intent was to explain, it failed.</p>
<p>I can't run Nuget, so I downloaded the FluentJDF binaries, created a new&nbsp;project in VS2010, and&nbsp;started copying in code from the tutorial.&nbsp;&nbsp;Run.&nbsp; Crash.&nbsp;&nbsp;A NullReferenceException from somewhere deep in&nbsp;FluentJDF.&nbsp;
Ok, I need source code to track this down.&nbsp; (see the following sections for more on this)</p>
<p>Finally got the source to build, and tracked the error down to get_Settings().&nbsp; I had failed to initialized the settings. An informative exception at this point would be useful for diagnosing this common fault.&nbsp; Note that the tutorial (the html,
not the example file) does not give a complete example of initializing the settings.&nbsp;&nbsp;It should either&nbsp;show that,&nbsp;or predict failure&nbsp;if one doesn't use&nbsp;the&nbsp;Nuget/Linqpad approach.</p>
<p>The tutorial boasts&nbsp;how much can be accomplished in one line of code, which seems a poor measure when using method chaining, where lines may be arbitrarily long.</p>
<p>If the tutorial intends to lead to understanding, the pace needs to be about half what it is, and explain what each method call does.</p>
<p>What was the philosophy used in this fluent implementation?</p>
<p>Show a non-fluent implementation for comparison.</p>
<p>How does one crawl back up the XML ancestry to add new elements?</p>
<p>Explain Builders vs XmlNodes and document navigation.</p>
<p>Provide an example of how you might parse the document created.</p>
<p><strong>Third-party assemblies:</strong>&nbsp; I found it difficult to locate all the required third-party assemblies.&nbsp; Due to regressive IT policies,&nbsp;I'm stuck in XP SP2, which Nuget doesn't support.&nbsp; So I spent a whole afternoon&nbsp;tracking
down:&nbsp;</p>
<p>- Castle</p>
<p>-&nbsp;ExpectedObjects</p>
<p>-&nbsp;Infrastructure</p>
<p>-&nbsp;Machine.Specifications</p>
<p>-&nbsp;Nlog</p>
<p>-&nbsp;NUnit</p>
<p>-&nbsp;Rhino.mocks</p>
<p>-&nbsp;Caliburn.Micro</p>
<p>and building them all so I'd have compatible versions.&nbsp; Actually, since our IT blocks private websites, I was unable to get Rhino.Mocks, but I commented out the four places it was used.&nbsp; Which made me wonder if&nbsp;rhino.mocks was really all that
necessary to begin with.</p>
<p>Every third-party assembly used provides some value, but&nbsp;multiplies the number of dependencies,&nbsp;effort to configure, learn, and deploy, and&nbsp;sometimes I don't think they're worth it.&nbsp; Especially in a project where you want others to participate.</p>
<p><strong>Unit Tests</strong></p>
<p>I read unit tests as models of how&nbsp;to use code.&nbsp;&nbsp; Except that these unit tests had no resemblance to any code I might want to write.&nbsp; I wasn't sure for a while that it was even C#.&nbsp;&nbsp; IMHO, the syntactic sugar of ExpectedObjects
isn't worth it.</p>
<p>After tracking down&nbsp;most of the required assemblies for the unit tests, I&nbsp;discovered I still needed&nbsp;to re-educate Resharper to recognize the unit tests.&nbsp; I just gave up&nbsp;on the unit tests&nbsp;at that point.</p>
<p>BTW I despise K&amp;R braces.</p>
<p><strong>FluentJDF</strong></p>
<p>The code at times seems a little too fluent.&nbsp; Methods are added whose purpose is to simply combine two other methods.&nbsp; For example,</p>
<p>public JdfNodeBuilder AddIntent() {<br>
&nbsp;&nbsp;&nbsp;&nbsp; return ParentJdfNode.AddIntent();<br>
}</p>
<p>While this reduces the amount of program code, it also hides informations (such as the fact that we're now operating on the parent node), so it
<em>increases </em>the amount of knowledge needed to understand the code.&nbsp; Admittedly,&nbsp;one doesn't have to use those functions.&nbsp; If prefer a sparser library which may lead to writing&nbsp;a little more code, but forces revealing (rather than
hiding)&nbsp;the structure of the XDocument we're building.</p>
<p><strong>Roadmap</strong></p>
<p>After becoming more familiar with the code, it was evident that it was all about writing JDF files and messaging, and there was no methods for building Controllers, Queues, or workflow, all the integration&nbsp;stuff that one needs to build a complete JDF
system.&nbsp;&nbsp;&nbsp;Its worth pointing out upfront that that functionality is in&nbsp;a for-sale product.&nbsp; It also raises the question of whether FluentJDF might grow in that direction.</p>
<p><strong>Documentation</strong></p>
<p>API-level&nbsp;documentation is provided, and it is admittedly thin.&nbsp; Specific topics to cover:</p>
<p>- high-level documentation that explains&nbsp;the&nbsp;design behind this implementation</p>
<p>-&nbsp;where this code is intended to fit into a complete product</p>
<p>-&nbsp;tutorials on specific problems.&nbsp; eg. editing existing JDF files,&nbsp;custom namespaces</p>
<p><strong>Summary</strong></p>
<p>From what I've seen, and my few tests, FluentJDF seems to work as advertised.&nbsp; The presence of unit tests (even though I've not gone through the effort to run them) is comforting.&nbsp; The author(s) seem to have a firm grasp on JDF, so I believe the
design is viable.</p>
<p>But FluentJDF by itself is not a complete JDF library, and depending on a plethora of third-party dlls is a barrier to some.</p>
<p>&lt;FlackJacket&gt;On&lt;/FlackJacket&gt;</p>
</div>selfcomposedMon, 26 Sep 2011 20:49:54 GMTNew Post: Things to improve 20110926084954PNew Post: InitializeFluentJdf functionhttp://fluentjdf.codeplex.com/discussions/268704<div style="line-height: normal;"><p>Of course. &nbsp;Fluent JDF utilizes functions that require the full .NET 4.0 profile. &nbsp;I didn't think about that.</p></div>tcabanskiSat, 13 Aug 2011 18:04:48 GMTNew Post: InitializeFluentJdf function 20110813060448PNew Post: InitializeFluentJdf functionhttp://fluentjdf.codeplex.com/discussions/268704<div style="line-height: normal;">I managed to get it compiling and running, for some reason, it seems that before you add the packages from NuGet, you have to set framework to .NET4 instead of .NET4 Client Profile...
<div><br>
</div>
<div>Thanx!<br>
<div><br>
<div>On 12 August 2011 13:16, tcabanski <span dir="ltr">&lt;<a href="mailto:notifications@codeplex.com">notifications@codeplex.com</a>&gt;</span> wrote:<br>
<blockquote style="margin:0 0 0 .8ex; border-left:1px #ccc solid; padding-left:1ex">
<div>
<p>From: tcabanski</p>
<div>
<p>We are planning to support a number of IoC/DI containers so support for specific containers is not in Core. The Castle Windsor support is in Infrastructure.Container.CastleWindsor.dll, which should have been added to your project as a reference. If not,
it was put in the package's lib directory by NuGet. Your application also needs to reference the Castle DLLs to use the Castle Windsor container. NuGet should have added those references for you as well. If not, reference the Castle Windsor package.</p>
<p>Logging support follows the same pattern. NuGet should have referenced Infrastructure.Logging.NLog.dll and the NLog DLL by default. The NuGet package puts the log4net alternative, Infrastructure.Logging.log4net.dll, in tools\optionDlls. If you wanted to
use log4net, you would remove the references to the two Nlog DLLs (infrastructure and NLog itself) and replace it with Infrastructure.Logging.log4net.dll and add a NuGet reference to the log4net package.
</p>
<p>Assuming you are sticking with NLog, startup would be:</p>
<p></p>
<div style="color:black; background-color:white">
<pre><span style="color:blue">using</span> Infrastructure.Container.CastleWindsor;
<span style="color:blue">using</span> Infrastructure.Logging.NLog;
<span style="color:blue">using</span> FluentJdf.Configuration;
<span style="color:blue">static</span> Main(){
Infrastructure.Core.Configuration.Settings.UseCastleWindsor().LogWithNLog().Configure();
FluentJdfLibrary.Settings.ResetToDefaults();
...
}
</pre>
</div>
<p></p>
<p>Dump() is a utility function provided by LinqPad. It dumps object information to to the LinqPad output window. It is not available when debugging a console application. Tickets and Messages are XDocument descendants so you can use their ToString() method
to look at the xml in the immediate window. You should also be able to view the xml using a Visual Studio visualizer from a watch window.</p>
<p>At some point in the future, we'll have more sample applications.</p>
</div>
<div>
<div>
<p>Read the <a href="http://fluentjdf.codeplex.com/discussions/268704#post657071" target="_blank">
full discussion online</a>.</p>
<p>To add a post to this discussion, reply to this email (<a href="mailto:fluentjdf@discussions.codeplex.com?subject=[fluentjdf:268704]" target="_blank">fluentjdf@discussions.codeplex.com</a>)</p>
<p>To start a new discussion for this project, email <a href="mailto:fluentjdf@discussions.codeplex.com" target="_blank">
fluentjdf@discussions.codeplex.com</a></p>
<p>You are receiving this email because you subscribed to this discussion on CodePlex. You can
<a href="https://fluentjdf.codeplex.com/subscriptions/thread/project/edit" target="_blank">
unsubscribe or change your settings</a> on codePlex.com.</p>
<p>Please note: Images and attachments will be removed from emails. Any posts to this discussion will also be available online at
<a href="http://codeplex.com" target="_blank">codeplex.com</a></p>
</div>
</div>
</div>
</blockquote>
</div>
<br>
<br clear="all">
<br>
-- <br>
Tomislav Trajkovski<br>
Managing Director<br>
Applify BV<br>
<br>
Head Office, Delft<br>
Martinus Nijhofflaan 2<br>
2624 ES Delft<br>
The Netherlands<br>
Telephone: &#43;31 (0)15 2120684<br>
Fax: &#43;31 (0)15 2121517<br>
Email: <a href="mailto:info@applify.com">info@applify.com</a><br>
<br>
</div>
</div>
</div>tomislavSat, 13 Aug 2011 15:28:24 GMTNew Post: InitializeFluentJdf function 20110813032824P