{"id":551,"date":"2022-11-21T23:31:35","date_gmt":"2022-11-22T04:31:35","guid":{"rendered":"https:\/\/robertweatherford.com\/wordpress\/?page_id=551"},"modified":"2023-12-03T15:39:32","modified_gmt":"2023-12-03T20:39:32","slug":"project-publisher-net","status":"publish","type":"page","link":"https:\/\/robertweatherford.com\/index.php\/professional-life\/closed-projects\/2000s\/project-publisher-net\/","title":{"rendered":"Project Publisher .NET"},"content":{"rendered":"\n<figure class=\"wp-block-image size-full\"><a href=\"https:\/\/i0.wp.com\/robertweatherford.com\/wordpress\/wp-content\/uploads\/2022\/11\/projectpublisher.gif?ssl=1\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"768\" src=\"https:\/\/i0.wp.com\/robertweatherford.com\/wordpress\/wp-content\/uploads\/2022\/11\/projectpublisher.gif?resize=1024%2C768&#038;ssl=1\" alt=\"\" class=\"wp-image-226\" data-recalc-dims=\"1\"\/><\/a><figcaption class=\"wp-element-caption\">2004 \u2014&nbsp;Parastream Technologies, Inc.<\/figcaption><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\">Introduction<\/h3>\n\n\n\n<p>Parastream Project Publisher&nbsp;.NET adds superior web site publishing to Microsoft Visual Studio .NET. It was inspired by the Microsoft FrontPage publisher, and Visual Studio 2005.<\/p>\n\n\n\n<p>The publisher can replace the Visual Studio &#8220;Copy Project&#8221; command if desired. It is implemented as a modeless MDI tool window, and as such may be an MDI window, floating, docked, or auto-hide. The new features in Project Publisher&nbsp;.NET are:<\/p>\n\n\n\n<ul>\n<li>Can perform an incremental project copy, uploading only the files in the project that have changed.<\/li>\n\n\n\n<li>Fully supports the project file&#8217;s FrontPage metadata, contained in the hidden _vti_cnf folders.<\/li>\n\n\n\n<li>Maintains a log of the most recent publishing operation.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Development<\/h3>\n\n\n\n<p>I am handling the entire project, including concept, design, implementation, testing, documentation, packaging, and marketing. The product is written in\u00a0<em>Microsoft Visual Studio .NET 2002<\/em>\u00a0in\u00a0<em>C#\u00a0<\/em>and\u00a0<em>C++<\/em>. The documentation is being composed in\u00a0<em>Microsoft FrontPage 2003<\/em>, and compiled into a .chm file using\u00a0<em>Microsoft HTML Help Workshop<\/em>. The web site pages at\u00a0<a href=\"https:\/\/www.parastream.com\/software\/projectpublisher\" target=\"_blank\" rel=\"noreferrer noopener\">https:\/\/www.parastream.com\/software\/projectpublisher<\/a>\u00a0are composed in Microsoft FrontPage 2003. The source control used was\u00a0<em>Perforce<\/em>.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Technologies<\/h3>\n\n\n\n<p>Project Publisher&nbsp;.NET is a Microsoft Visual Studio .NET add-in. Numerous workarounds in the add-in were necessary due to bugs and incorrect\/misleading documentation about the IDE. The custom controls were fairly straightforward, once the FrontPage behavior was documented.<\/p>\n\n\n\n<ul>\n<li>Visual Studio .NET\n<ul>\n<li>Add-In.<\/li>\n\n\n\n<li>Custom tool window and shim.<\/li>\n\n\n\n<li>Event handlers.<\/li>\n\n\n\n<li>Property Extenders.<\/li>\n\n\n\n<li>Custom Setup Actions.<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li>FrontPage\n<ul>\n<li>Operational Compatibility.<\/li>\n\n\n\n<li>Reverse-engineering of file formats.<\/li>\n\n\n\n<li>Reverse-engineering of poorly-documented FrontPage Server Extensions APIs.<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Conclusion<\/h3>\n\n\n\n<p>The product contains over 10,000 lines of C# code.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Introduction Parastream Project Publisher&nbsp;.NET adds superior web site publishing to Microsoft Visual Studio .NET. It was inspired by the Microsoft FrontPage publisher, and Visual Studio 2005. The publisher can replace the Visual Studio &#8220;Copy Project&#8221; command if desired. It is implemented as a modeless MDI tool window, and as such may be an MDI window, [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":147,"menu_order":-2004,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"jetpack_sharing_enabled":true,"jetpack-related-posts":[],"_links":{"self":[{"href":"https:\/\/robertweatherford.com\/index.php\/wp-json\/wp\/v2\/pages\/551"}],"collection":[{"href":"https:\/\/robertweatherford.com\/index.php\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/robertweatherford.com\/index.php\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/robertweatherford.com\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/robertweatherford.com\/index.php\/wp-json\/wp\/v2\/comments?post=551"}],"version-history":[{"count":3,"href":"https:\/\/robertweatherford.com\/index.php\/wp-json\/wp\/v2\/pages\/551\/revisions"}],"predecessor-version":[{"id":663,"href":"https:\/\/robertweatherford.com\/index.php\/wp-json\/wp\/v2\/pages\/551\/revisions\/663"}],"up":[{"embeddable":true,"href":"https:\/\/robertweatherford.com\/index.php\/wp-json\/wp\/v2\/pages\/147"}],"wp:attachment":[{"href":"https:\/\/robertweatherford.com\/index.php\/wp-json\/wp\/v2\/media?parent=551"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}