<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://limingxu.com/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>X.U Web Chronicle</title><link>http://limingxu.com/blogs/xu_web_chronicle/default.aspx</link><description>About The Author - Liming Xu ,Seasoned ASP.NET and Java Developer.  &lt;p /&gt; Creator of &lt;a href="http://jumptree.com"&gt;Jumptree Project Management&lt;/a&gt; - A web based ASP.NET 2.0 project management software  focused around the idea of milestone deliverables and clients interactions. Unlike basecamp or other traditional bug trackers, you can effectively manage your conversations with clients and materialize them into concrete tasks.</description><dc:language>en</dc:language><generator>CommunityServer 2.1 SP2 (Build: 61129.2)</generator><item><title>ASP.NET 2.0 Forms Authentication and Active Directory Installation</title><link>http://limingxu.com/blogs/xu_web_chronicle/archive/2008/03/19/asp-net-2-0-forms-authentication-and-active-directory-installation.aspx</link><pubDate>Wed, 19 Mar 2008 17:16:00 GMT</pubDate><guid isPermaLink="false">e33cfc3b-0a20-4406-a9f8-726f3a931aa8:23507</guid><dc:creator>Liming</dc:creator><slash:comments>0</slash:comments><comments>http://limingxu.com/blogs/xu_web_chronicle/comments/23507.aspx</comments><wfw:commentRss>http://limingxu.com/blogs/xu_web_chronicle/commentrss.aspx?PostID=23507</wfw:commentRss><wfw:comment>http://limingxu.com/blogs/xu_web_chronicle/rsscomments.aspx?PostID=23507</wfw:comment><description>&lt;p&gt;Earlier this week, I've posted an article on this subject and it can be found on the &lt;a href="http://blog.jumptree.com/2008/active-directory-and-aspnet-forms-authentication/"&gt;Jumptree Blog. &lt;/a&gt;&lt;/p&gt;&lt;p&gt;Overall, I went through the steps from setting up up Active directory to how ASP.NET authenticates against the new setup. I always find it is more clear to developers&amp;nbsp; if we know how the system works behind the scene. &lt;br&gt;&lt;/p&gt;&lt;p&gt;As we all know, larger size corporations and agencies normally uses Active Directory to manage their internal users for various of reasons. Personally, because we are a small shop and the contracts we've dealt with were mostly in hosting environments, such we never had the need to look into supporting Active Directory. However, this has changed ever since Jumptree were being tested in such environments. We realized by providing the support for such authentication is essential to expanding our customer basis. &lt;br&gt;&lt;br&gt;I mentioned at the end of the article, there are still much to be done. The reason is it's very often to have multiple Active Directories within an organization and users are spread through out the multiples domains.&amp;nbsp; We need to research further on how to authenticate the proper domain based on user's selection in addition to build the proper admin module for multiple domain registrations. &lt;br&gt;&lt;br&gt;In addition, we find that a lot of organizations also use "SiteMinder" from Computer Associates for authentication. This makes it very interesting and it appears at least to us that only very huge organizations use "SiteMinder" and yet, the resources on ASP.NET 2.0 / SiteMinder integration is rare to find. We are doing research on this subject as well and when I do find out how to do this, I will write another article following up on this subject. If any of you know anything on this subject or would like to learn about it, definitely let me know. &lt;br&gt;&lt;br&gt;Anyway, hope the article helps some of the .NET developers out there on with Active directory / Forms Authentication development issues. &lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;img src="http://limingxu.com/aggbug.aspx?PostID=23507" width="1" height="1"&gt;</description></item><item><title>Jumptree V1.1 is released today on 1/1/2008</title><link>http://limingxu.com/blogs/xu_web_chronicle/archive/2008/01/01/jumptree-v1-1-is-released-today-on-1-1-2008.aspx</link><pubDate>Tue, 01 Jan 2008 11:19:15 GMT</pubDate><guid isPermaLink="false">e33cfc3b-0a20-4406-a9f8-726f3a931aa8:18809</guid><dc:creator>Liming</dc:creator><slash:comments>0</slash:comments><comments>http://limingxu.com/blogs/xu_web_chronicle/comments/18809.aspx</comments><wfw:commentRss>http://limingxu.com/blogs/xu_web_chronicle/commentrss.aspx?PostID=18809</wfw:commentRss><wfw:comment>http://limingxu.com/blogs/xu_web_chronicle/rsscomments.aspx?PostID=18809</wfw:comment><description>&lt;p&gt;Dear &lt;a href="http://jumptree.com"&gt;Jumptree&lt;/a&gt; users: &lt;br&gt;&lt;br&gt;Maybe we are just a tiny bit superstitious :), but it just seemed like the best day to release v1.1 is on 1/1 :) , so thanks again for your understanding and today, we are proud to present you with the immediate availability of &lt;a href="http://www.jumptree.com/downloads.aspx"&gt;Jumptree V1.1 for download&lt;/a&gt;.&amp;nbsp; &lt;br&gt;&lt;br&gt;As we have announced before, v1.1 is a free upgrade to all v1.0 purchased users, such, please log into our customer portal and you will find the v1.1 release file there for download. &lt;br&gt;&lt;br&gt;Other than the v1.1 features and the screen-shots that &lt;a href="http://limingxu.com/blogs/xu_web_chronicle/archive/2007/12/13/jumptree-project-management-v1-1-preview-based-on-asp-net-2-0.aspx"&gt;I've already showed in the previous post&lt;/a&gt;, I want to point that the installer has been upgraded to ease your migration from v1.0 to v1.1 as well. Simply choose "Upgrade from v1.0 to v1.1" and you will be good to go. Here is a screen shot of the new installer. &lt;br&gt;&lt;br&gt;&lt;a href="http://limingxu.com/blogs/xu_web_chronicle/WindowsLiveWriter/JumptreeV1.1isreleasedtodayon112008_58D7/Installer.png"&gt;&lt;img style="border-right:0px;border-top:0px;border-left:0px;border-bottom:0px;" height="270" alt="Installer" src="http://limingxu.com/blogs/xu_web_chronicle/WindowsLiveWriter/JumptreeV1.1isreleasedtodayon112008_58D7/Installer_thumb.png" width="436" border="0"&gt;&lt;/a&gt; &lt;br&gt;&lt;br&gt;Of course, the first thing you have to is to delete the old v1.0 files and replace them with the new v1.1 files. Here is what you need to do in 4 simple steps. &lt;br&gt;&lt;br&gt;1. Delete All existing v1.0 files &lt;strong&gt;Except&lt;/strong&gt;&lt;/p&gt; &lt;blockquote&gt; &lt;p&gt;Directory :&amp;nbsp;&amp;nbsp; /App_Data/&lt;br&gt;Files :&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; PMAppSetting.config,&amp;nbsp; PMDBConnection.config, PMEmailSMTP.config&lt;/p&gt;&lt;/blockquote&gt; &lt;p&gt; 2. Copy all v1.1 files over except the above mentioned config files and the App_Data folder&lt;br&gt; 3. Copy v1.1&amp;nbsp; /App_Data/SqlScripts/ folder to your exisiting /App_Data/ directory&lt;br&gt; 4. Lastly, launch your installer at&amp;nbsp; &lt;a href="http://[your"&gt;http://[your&lt;/a&gt; url]/setup/default.aspx&lt;br&gt;&lt;br&gt;Feature wise, to further improve your experience, our designer Jackson Lin has added special CSS for printing purposes and here is a snap shot of the task detail in "Print Preview". &lt;br&gt;&lt;br&gt;&lt;a href="http://limingxu.com/blogs/xu_web_chronicle/WindowsLiveWriter/JumptreeV1.1isreleasedtodayon112008_58D7/PrintPreview.png"&gt;&lt;img style="border-right:0px;border-top:0px;border-left:0px;border-bottom:0px;" height="429" alt="PrintPreview" src="http://limingxu.com/blogs/xu_web_chronicle/WindowsLiveWriter/JumptreeV1.1isreleasedtodayon112008_58D7/PrintPreview_thumb.png" width="436" border="0"&gt;&lt;/a&gt;&amp;nbsp;&lt;br&gt;&lt;br&gt;Now, you have no excuses to not bring them along to your weekly meetings :) &lt;br&gt;&lt;br&gt;In addition, Jumptree now supports the inputs and displays of all languages. Here is a screen shot of the word "Hello!" in 9 different languages. &lt;br&gt;&lt;br&gt;&lt;a href="http://limingxu.com/blogs/xu_web_chronicle/WindowsLiveWriter/JumptreeV1.1isreleasedtodayon112008_58D7/AllLanguages.png"&gt;&lt;img style="border-right:0px;border-top:0px;border-left:0px;border-bottom:0px;" height="324" alt="AllLanguages" src="http://limingxu.com/blogs/xu_web_chronicle/WindowsLiveWriter/JumptreeV1.1isreleasedtodayon112008_58D7/AllLanguages_thumb.png" width="436" border="0"&gt;&lt;/a&gt;&lt;br&gt;&lt;br&gt;In the previous edition, some of our Non-English customers (mainly French users and Chinese users) pointed out that their native characters became garbage questions marks and it was a great concern to them. Such it is our pleasure to finally provide the support for it. &lt;br&gt;&lt;br&gt;Some of the Chinese readers might have already noticed that the names are displayed in both Traditional and Simplified Chinese, so yes, because it's UTF-8 encoded, both characters can co-exists without any special treatment. &lt;br&gt;&lt;br&gt;Another screen shot with all Chinese characters&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;a href="http://limingxu.com/blogs/xu_web_chronicle/WindowsLiveWriter/JumptreeV1.1isreleasedtodayon112008_58D7/AllLanguages2.png"&gt;&lt;img style="border-right:0px;border-top:0px;border-left:0px;border-bottom:0px;" height="395" alt="AllLanguages2" src="http://limingxu.com/blogs/xu_web_chronicle/WindowsLiveWriter/JumptreeV1.1isreleasedtodayon112008_58D7/AllLanguages2_thumb.png" width="436" border="0"&gt;&lt;/a&gt;&amp;nbsp;&lt;br&gt;&lt;br&gt;&lt;br&gt;In v1.0, some project managers complained that by viewing project details, there were many tasks missing due to the fact that there were tasks not attached to milestones and such were missing in project detail, we're glad to have fixed this issue and present you with a complete one-page view of your project in its entirety.&amp;nbsp; (Notice, now we displays "&lt;strong&gt;tasks with no milestones&lt;/strong&gt;" in a grid of its own)&lt;br&gt;&lt;br&gt; &lt;a href="http://limingxu.com/blogs/xu_web_chronicle/WindowsLiveWriter/JumptreeV1.1isreleasedtodayon112008_58D7/1-Page-View.png"&gt;&lt;img style="border-right:0px;border-top:0px;border-left:0px;border-bottom:0px;" height="640" alt="1-Page-View" src="http://limingxu.com/blogs/xu_web_chronicle/WindowsLiveWriter/JumptreeV1.1isreleasedtodayon112008_58D7/1-Page-View_thumb.png" width="436" border="0"&gt;&lt;/a&gt; &lt;br&gt;&lt;br&gt;&lt;br&gt;Okay, these are just some of the highlights in V1.1 in addition to the ones that &lt;a href="http://limingxu.com/blogs/xu_web_chronicle/archive/2007/12/13/jumptree-project-management-v1-1-preview-based-on-asp-net-2-0.aspx"&gt;I've described in the previous post&lt;/a&gt;.&amp;nbsp; There are many other small usability improvements throughout the software in this version and we are sure when you get it, you'll quickly find out.&amp;nbsp; &lt;br&gt;&lt;br&gt;Thank you &lt;br&gt;&lt;br&gt;Jumptree Staff&lt;br&gt;Liming Xu&lt;/p&gt;&lt;img src="http://limingxu.com/aggbug.aspx?PostID=18809" width="1" height="1"&gt;</description></item><item><title>InfoWorld - Java is becoming the new Cobol. </title><link>http://limingxu.com/blogs/xu_web_chronicle/archive/2007/12/28/infoworld-java-is-becoming-the-new-cobol.aspx</link><pubDate>Fri, 28 Dec 2007 19:51:00 GMT</pubDate><guid isPermaLink="false">e33cfc3b-0a20-4406-a9f8-726f3a931aa8:18643</guid><dc:creator>Liming</dc:creator><slash:comments>0</slash:comments><comments>http://limingxu.com/blogs/xu_web_chronicle/comments/18643.aspx</comments><wfw:commentRss>http://limingxu.com/blogs/xu_web_chronicle/commentrss.aspx?PostID=18643</wfw:commentRss><wfw:comment>http://limingxu.com/blogs/xu_web_chronicle/rsscomments.aspx?PostID=18643</wfw:comment><description>

&lt;p class="MsoNormal"&gt;&lt;a href="http://www.infoworld.com/article/07/12/28/52FE-underreported-java_1.html"&gt;This article&lt;/a&gt; pretty summarizes the sentiments of developers
who worked extensively on both the Java environment and the .Net environments. &lt;br&gt;
&lt;br&gt;
Again, I can’t comment on Ruby on Rail or PHP because I don’t have experiences
with them, but what I CAN tell people is that if you are a Java/Ruby/PHP developer
then you have to try out the .NET platform yourself to truly appreciate what
you are missing. &lt;/p&gt;



&lt;p class="MsoNormal"&gt;It’s not a conflicted statement.&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;I
haven’t tasted apple before, but I can still tell you if you’ve never tried
orange, then you’ve missed something. &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;br&gt;
&lt;br&gt;
I can’t argue with those who haven’t truly used .Net, because as with any new
languages and frameworks, there is a bit of learning curve in the beginning.
Frustrations and mis-understandings of the “right way” to do something new, a
lot of times, prevent people from “crossing” the chasm. &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;br&gt;
&lt;br&gt;
Case in point, I get this type of complaints a lot. For example, ASP.NET “ViewState”
is huge and simply a waste of bandwidth, it unnecessarily produces huge page
size.&lt;span&gt;&amp;nbsp; &lt;/span&gt;The keyword is “unnecessarily” as
I tell my friends. If it’s unnecessary, then please turn off the view
state.&lt;span&gt;&amp;nbsp; &lt;/span&gt;Use ViewState only if you need
it, please don’t abuse it. A typical case of the paradox of choices which I
admit, Microsoft offers way too many goodies to developers these days, spoiled
us way too much. It definitely encouraged some bad practices simply because they
are there. &lt;br&gt;
&lt;br&gt;
It’s a leap in faith for those non .Net developers, no questions about it,
however with a little bit of patience and investment in the beginning, what you’ll
find out is that the return of investments of .NET platform far exceeds your
expectations. The time invested into the same application, the time you saved
with your family, meeting clients’ expectations and timeline, the headaches you’ve
saved just to get your environment right and at finally, as a company decision
maker, the ease of finding another equally qualified .NET developer without a
steep learning curve; a typical short-coming suffers from the J2EE side. &lt;br&gt;
&lt;br&gt;
For example, a Senior J2EE developer with JSP, Servlet and EJBs using IBM
Websphere 5.1 on the windows platform, won’t matter much if the new environment
is JSF/Spring/Hibernate using JBoss 5.0 on the Sun Solaris Unix platform. &lt;span&gt;&amp;nbsp;&lt;/span&gt;I personally know many of my Java colleague
runs away from such cases even though they are one of the best senior J2EE
developers you can find in their specialized combo skill sets. It’s truly
unfortunate. &lt;br&gt;
&lt;br&gt;
Java won’t be phased out, Java won’t die, but Java sure will taste the fury of
the products developed by the .Net developers in the next few years especially with
what .NET 3.5 has to offer these days. &lt;span&gt;&amp;nbsp;&lt;/span&gt;You can sigh, you can wish, but the fact
remains, develop &lt;b&gt;AND&lt;/b&gt; providing support on the .NET platform simply saves more
time and human resources than on the Java platform. &lt;br&gt;
&lt;br&gt;
This ends my thoughts as the *Java Sellout* for today ,&lt;span&gt;&amp;nbsp; &lt;/span&gt;happy new year everyone! &lt;/p&gt;&lt;img src="http://limingxu.com/aggbug.aspx?PostID=18643" width="1" height="1"&gt;</description></item><item><title>Babble Babble Babble,  we need a way to babble! </title><link>http://limingxu.com/blogs/xu_web_chronicle/archive/2007/12/19/babelfish-servcies-we-need-the-providers-to-exposes-them-to-everyone.aspx</link><pubDate>Wed, 19 Dec 2007 19:42:00 GMT</pubDate><guid isPermaLink="false">e33cfc3b-0a20-4406-a9f8-726f3a931aa8:18248</guid><dc:creator>Liming</dc:creator><slash:comments>0</slash:comments><comments>http://limingxu.com/blogs/xu_web_chronicle/comments/18248.aspx</comments><wfw:commentRss>http://limingxu.com/blogs/xu_web_chronicle/commentrss.aspx?PostID=18248</wfw:commentRss><wfw:comment>http://limingxu.com/blogs/xu_web_chronicle/rsscomments.aspx?PostID=18248</wfw:comment><description>&lt;p&gt;Been looking around for Babelfish services across the web, mainly services from Altavista, Yahoo, Google and Windows Live, it'd seems like this is a direction that all major competitors are trying to achieve and in my personal opinion, it's one service that will actually have a huge impact around the world. &lt;br&gt;&lt;br&gt;Unfortunately,&amp;nbsp; from my research, none of these sites expose it as web services, even if they do, like Google, it's restricted purely for academic research purpose only.&amp;nbsp; Will it be nice if they do what they did with&amp;nbsp; Google Maps and Virtual earth and ask the world to help them use it and test it? &lt;br&gt;&lt;br&gt;In our software, &lt;a href="http://jumptree.com"&gt;Jumptree Project Management&lt;/a&gt;, we have customers who have teams across the world, some are in the United States and others are in China. We sure 'd love to have the babblefish being consumed through web services and the team members will have a preference setting "Translate all messages from English local to Chinese" selected and babble babble, whenever they talk to each other, they could at least figure out what the other team member is saying... (Of course, I'm sure most people speak English these days, but I think everyone still prefer to read in their own language) &lt;br&gt;&lt;br&gt;Why is it an important feature you ask? In sci-fi movies like Star-Trek (taking the risk of sounding way too nerdy), we've always seen these translator gadgets, but these days, it's not fictions anymore. (I'm sure William Shatner will say "I told you so") We are reaching the edge of this break-through, it's time to have the world starts to use it. If any developers from one of these translator providers do ever comes through this article, I strongly urge them to push for the release of the web services.&lt;br&gt;&lt;br&gt;As a software provider, I see an unlimited growth in its usefulness and truly connects people around the world together. This is something I will keep my eyes peeled for the next few years to come. &lt;br&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;img src="http://limingxu.com/aggbug.aspx?PostID=18248" width="1" height="1"&gt;</description></item><item><title>Jumptree Project Management v1 .1 Preview Based on ASP.NET 2.0</title><link>http://limingxu.com/blogs/xu_web_chronicle/archive/2007/12/13/jumptree-project-management-v1-1-preview-based-on-asp-net-2-0.aspx</link><pubDate>Thu, 13 Dec 2007 03:48:40 GMT</pubDate><guid isPermaLink="false">e33cfc3b-0a20-4406-a9f8-726f3a931aa8:17932</guid><dc:creator>Liming</dc:creator><slash:comments>2</slash:comments><comments>http://limingxu.com/blogs/xu_web_chronicle/comments/17932.aspx</comments><wfw:commentRss>http://limingxu.com/blogs/xu_web_chronicle/commentrss.aspx?PostID=17932</wfw:commentRss><wfw:comment>http://limingxu.com/blogs/xu_web_chronicle/rsscomments.aspx?PostID=17932</wfw:comment><description>&lt;p&gt;First of all, thanks to all &lt;a href="http://jumptree.com"&gt;Jumptree&lt;/a&gt; v1.0 customers for making this possible, you guys gave us strength and confirmation of what we do; to a small startup company, it’s truly invaluable. &lt;br&gt;&lt;br&gt;In this release, we fixed bugs that you’ve reported, we incorporated the suggestions you have made and most importantly, we’ve added several significant new features that will benefit your organizations.  &lt;p&gt;Quick List  &lt;ul&gt; &lt;li&gt;Sql Server 2005 Support  &lt;li&gt;Calendar Collaboration and Localized Date Time Format  &lt;li&gt;Centralized Files Management  &lt;li&gt;Publishing Tasks / Clients Collaboration  &lt;li&gt;Get Organized with Batch Update  &lt;li&gt;Mass Emailing For Project Manager and Administrator  &lt;li&gt;Proxy Url Support  &lt;li&gt;One Page Project View.  &lt;li&gt;Reduced Page rendering size by 30%-90% reported via YSlow  &lt;li&gt;Usability Improvements  &lt;ul&gt; &lt;li&gt;Continuous add for everything - “Add Another”  &lt;li&gt;Print Friendly  &lt;li&gt;Calendar selection for due dates  &lt;li&gt;Minified CSS style sheets and Javascript for quicker download &lt;/li&gt;&lt;/ul&gt; &lt;li&gt;Others  &lt;ul&gt; &lt;li&gt;Reduced unnecessary database calls by 20% &lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;&lt;strong&gt;1. SQL Server 2005 Support&lt;br&gt;&lt;/strong&gt;&lt;br&gt;Even though from the feedbacks of some customers that they had v1.0 worked on SQL server 2005 but because we never tested against it, therefore, we couldn’t officially support it. Now, after comprehensive testing against every single store procedures, it is for a fact that &lt;a href="http://jumptree.com"&gt;Jumptree Project Management&lt;/a&gt; will work on SQL server 2005 with little effort on your part. &lt;/p&gt; &lt;p&gt;&lt;br&gt;&lt;strong&gt;2. Calendar Collaboration and Localized Date Time Formats for ALL languages&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;This is a feature a lot of customers requested and such we decided to make it in this release. But that’s not it. We did more than you asked for! &lt;br&gt;&lt;br&gt;With the excellent support of .NET framework, we made the calendar &lt;strong&gt;localized to your own language and date time formatted in the way that you are accustomed&lt;/strong&gt; to as oppose to the hard set U.S time format mm/dd/yyyy in v.1.0 release. Name your language (English U.K, German, French, Arabic, Spanish, Italian, etc, etc as long as it's supported by windows platform), we will detect your language automatically and format the calendar accordingly. It requires no effort on your part. &lt;br&gt;&lt;br&gt;Even though the application is not yet ready for complete globalization, meaning support all static text in your language, but we hope by having a localized calendar, it will be a step forward in the right direction.&lt;br&gt;&lt;br&gt;&lt;strong&gt;Two sample screen shots of the Calendar in English (U.S) and Chinese (Taiwan)&lt;/strong&gt;&lt;br&gt;&lt;br&gt;English (U.S)&lt;br&gt;&amp;nbsp;&lt;br&gt;&lt;a href="http://limingxu.com/blogs/xu_web_chronicle/WindowsLiveWriter/JumptreeProjectManagementv1.1PreviewBa.0_13A68/CalendarU.S1.png"&gt;&lt;img style="border-top-width:0px;border-left-width:0px;border-bottom-width:0px;border-right-width:0px;" height="269" alt="CalendarU.S1" src="http://limingxu.com/blogs/xu_web_chronicle/WindowsLiveWriter/JumptreeProjectManagementv1.1PreviewBa.0_13A68/CalendarU.S1_thumb.png" width="436" border="0"&gt;&lt;/a&gt; &lt;br&gt;&lt;br&gt;Chinese (Taiwan)&lt;br&gt;&lt;br&gt;&lt;a href="http://limingxu.com/blogs/xu_web_chronicle/WindowsLiveWriter/JumptreeProjectManagementv1.1PreviewBa.0_13A68/CalendarTW1.png"&gt;&lt;img style="border-top-width:0px;border-left-width:0px;border-bottom-width:0px;border-right-width:0px;" height="269" alt="CalendarTW1" src="http://limingxu.com/blogs/xu_web_chronicle/WindowsLiveWriter/JumptreeProjectManagementv1.1PreviewBa.0_13A68/CalendarTW1_thumb.png" width="436" border="0"&gt;&lt;/a&gt; &lt;br&gt;&lt;br&gt;The collaboration comes from the integration with “Projects”, “Milestones” and “Tasks” within the application. Your team will be able to easily identify what’s due and when is due, publish what the clients will see and collaborate the project in symphony.&amp;nbsp;&amp;nbsp; &lt;br&gt;&lt;br&gt;&lt;strong&gt;Project Status viewed by team member&lt;/strong&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;a href="http://limingxu.com/blogs/xu_web_chronicle/WindowsLiveWriter/JumptreeProjectManagementv1.1PreviewBa.0_13A68/CalendarU.S2.png"&gt;&lt;img style="border-top-width:0px;border-left-width:0px;border-bottom-width:0px;border-right-width:0px;" height="641" alt="CalendarU.S2" src="http://limingxu.com/blogs/xu_web_chronicle/WindowsLiveWriter/JumptreeProjectManagementv1.1PreviewBa.0_13A68/CalendarU.S2_thumb.png" width="466" border="0"&gt;&lt;/a&gt; &lt;br&gt;&lt;br&gt;Again, the exact same page seen in Chinese (Taiwan)&lt;/p&gt; &lt;p&gt;&lt;a href="http://limingxu.com/blogs/xu_web_chronicle/WindowsLiveWriter/JumptreeProjectManagementv1.1PreviewBa.0_13A68/CalendarTW2.png"&gt;&lt;img style="border-top-width:0px;border-left-width:0px;border-bottom-width:0px;border-right-width:0px;" height="641" alt="CalendarTW2" src="http://limingxu.com/blogs/xu_web_chronicle/WindowsLiveWriter/JumptreeProjectManagementv1.1PreviewBa.0_13A68/CalendarTW2_thumb.png" width="466" border="0"&gt;&lt;/a&gt; 4&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;strong&gt;Project Status viewed by client (Notice, only published items above shows up)&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;&lt;a href="http://limingxu.com/blogs/xu_web_chronicle/WindowsLiveWriter/JumptreeProjectManagementv1.1PreviewBa.0_13A68/CalendarU.S3Client.png"&gt;&lt;img style="border-top-width:0px;border-left-width:0px;border-bottom-width:0px;border-right-width:0px;" height="545" alt="CalendarU.S3Client" src="http://limingxu.com/blogs/xu_web_chronicle/WindowsLiveWriter/JumptreeProjectManagementv1.1PreviewBa.0_13A68/CalendarU.S3Client_thumb.png" width="466" border="0"&gt;&lt;/a&gt;&amp;nbsp;&lt;br&gt;&lt;br&gt;&lt;strong&gt;Auto date/time format in different locals&lt;br&gt;&lt;br&gt;English U.S&lt;br&gt;&lt;br&gt;&lt;a href="http://limingxu.com/blogs/xu_web_chronicle/WindowsLiveWriter/JumptreeProjectManagementv1.1PreviewBa.0_13A68/DueDateU.S.png"&gt;&lt;img style="border-top-width:0px;border-left-width:0px;border-bottom-width:0px;border-right-width:0px;" height="44" alt="DueDateU.S" src="http://limingxu.com/blogs/xu_web_chronicle/WindowsLiveWriter/JumptreeProjectManagementv1.1PreviewBa.0_13A68/DueDateU.S_thumb.png" width="466" border="0"&gt;&lt;/a&gt; &lt;br&gt;&lt;br&gt;English U.K&lt;br&gt;&lt;br&gt;&lt;a href="http://limingxu.com/blogs/xu_web_chronicle/WindowsLiveWriter/JumptreeProjectManagementv1.1PreviewBa.0_13A68/DueDateU.K.png"&gt;&lt;img style="border-top-width:0px;border-left-width:0px;border-bottom-width:0px;border-right-width:0px;" height="44" alt="DueDateU.K" src="http://limingxu.com/blogs/xu_web_chronicle/WindowsLiveWriter/JumptreeProjectManagementv1.1PreviewBa.0_13A68/DueDateU.K_thumb.png" width="466" border="0"&gt;&lt;/a&gt; &lt;br&gt;&lt;br&gt;Chinese Taiwan&lt;br&gt;&lt;br&gt;&lt;/strong&gt;&lt;br&gt;&lt;a href="http://limingxu.com/blogs/xu_web_chronicle/WindowsLiveWriter/JumptreeProjectManagementv1.1PreviewBa.0_13A68/DueDateTW.png"&gt;&lt;img style="border-top-width:0px;border-left-width:0px;border-bottom-width:0px;border-right-width:0px;" height="44" alt="DueDateTW" src="http://limingxu.com/blogs/xu_web_chronicle/WindowsLiveWriter/JumptreeProjectManagementv1.1PreviewBa.0_13A68/DueDateTW_thumb.png" width="466" border="0"&gt;&lt;/a&gt; &lt;br&gt;&lt;br&gt;&lt;strong&gt;German Germany&lt;/strong&gt;&lt;br&gt;&lt;br&gt;&lt;a href="http://limingxu.com/blogs/xu_web_chronicle/WindowsLiveWriter/JumptreeProjectManagementv1.1PreviewBa.0_13A68/DueDateGerman.png"&gt;&lt;img style="border-top-width:0px;border-left-width:0px;border-bottom-width:0px;border-right-width:0px;" height="35" alt="DueDateGerman" src="http://limingxu.com/blogs/xu_web_chronicle/WindowsLiveWriter/JumptreeProjectManagementv1.1PreviewBa.0_13A68/DueDateGerman_thumb.png" width="466" border="0"&gt;&lt;/a&gt; &lt;br&gt;&lt;br&gt;If you are trying to enter in a due date in U.S format for example when your language is English U.K, the system will smartly prompt you with the following message&lt;br&gt;&lt;br&gt;&lt;a href="http://limingxu.com/blogs/xu_web_chronicle/WindowsLiveWriter/JumptreeProjectManagementv1.1PreviewBa.0_13A68/DateTimeFormat.png"&gt;&lt;img style="border-right:0px;border-top:0px;border-left:0px;border-bottom:0px;" height="324" alt="DateTimeFormat" src="http://limingxu.com/blogs/xu_web_chronicle/WindowsLiveWriter/JumptreeProjectManagementv1.1PreviewBa.0_13A68/DateTimeFormat_thumb.png" width="436" border="0"&gt;&lt;/a&gt; &lt;br&gt;&lt;br&gt;&lt;br&gt;Obviously, the above are just some sample languages that I chose for this blog post. Most likely, your language is supported.&amp;nbsp; Also, we've added the calendar icon date/time selection for your convienance as well, the reason it's delayed till now is because we want that to be localized to your language as well which it does now. &lt;br&gt;&lt;br&gt;&lt;strong&gt;3. Centralized Files Management&lt;/strong&gt; &lt;/p&gt; &lt;p&gt;Here is another item requested via quite a few customers. Most organizations revolves around files. Even though in v1.0, you could attach files through tasks and discussions, however, a centralized files repository is desired. We heard you and here it is with publish options to share with clients. &lt;br&gt;&lt;br&gt;&amp;nbsp;&lt;a href="http://limingxu.com/blogs/xu_web_chronicle/WindowsLiveWriter/JumptreeProjectManagementv1.1PreviewBa.0_13A68/FilesAdd.png"&gt;&lt;img style="border-top-width:0px;border-left-width:0px;border-bottom-width:0px;border-right-width:0px;" height="350" alt="FilesAdd" src="http://limingxu.com/blogs/xu_web_chronicle/WindowsLiveWriter/JumptreeProjectManagementv1.1PreviewBa.0_13A68/FilesAdd_thumb.png" width="466" border="0"&gt;&lt;/a&gt; &lt;br&gt;&lt;br&gt;&lt;a href="http://limingxu.com/blogs/xu_web_chronicle/WindowsLiveWriter/JumptreeProjectManagementv1.1PreviewBa.0_13A68/FilesOverview.png"&gt;&lt;img style="border-top-width:0px;border-left-width:0px;border-bottom-width:0px;border-right-width:0px;" height="350" alt="FilesOverview" src="http://limingxu.com/blogs/xu_web_chronicle/WindowsLiveWriter/JumptreeProjectManagementv1.1PreviewBa.0_13A68/FilesOverview_thumb.png" width="466" border="0"&gt;&lt;/a&gt; &lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;strong&gt;4. Publishing Tasks / Clients Collaboration&lt;/strong&gt; &lt;br&gt;&lt;br&gt;This is really a last minute request via one of our client and we were able to squeeze it into v1.1 release and oh boy, aren't we glad that we did.&amp;nbsp; &lt;br&gt;&lt;br&gt;It's common to interact with clients and have clients view what your team is currently doing. This not only updates the client with real time progress of your project but also from a client's perspective, it gives them confidence to know what their money has been spent on. &lt;br&gt;&lt;br&gt;&lt;strong&gt;Here is how to create a new task with publish option&lt;/strong&gt;&lt;br&gt;&lt;br&gt;&amp;nbsp;&lt;a href="http://limingxu.com/blogs/xu_web_chronicle/WindowsLiveWriter/JumptreeProjectManagementv1.1PreviewBa.0_13A68/NewTaskPublish.png"&gt;&lt;img style="border-top-width:0px;border-left-width:0px;border-bottom-width:0px;border-right-width:0px;" height="329" alt="NewTaskPublish" src="http://limingxu.com/blogs/xu_web_chronicle/WindowsLiveWriter/JumptreeProjectManagementv1.1PreviewBa.0_13A68/NewTaskPublish_thumb.png" width="466" border="0"&gt;&lt;/a&gt; &lt;br&gt;&lt;br&gt;&lt;strong&gt;After it's created, here is how it looks&lt;/strong&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;a href="http://limingxu.com/blogs/xu_web_chronicle/WindowsLiveWriter/JumptreeProjectManagementv1.1PreviewBa.0_13A68/PublishedTaskDetail.png"&gt;&lt;img style="border-top-width:0px;border-left-width:0px;border-bottom-width:0px;border-right-width:0px;" height="312" alt="PublishedTaskDetail" src="http://limingxu.com/blogs/xu_web_chronicle/WindowsLiveWriter/JumptreeProjectManagementv1.1PreviewBa.0_13A68/PublishedTaskDetail_thumb.png" width="466" border="0"&gt;&lt;/a&gt;&amp;nbsp;&lt;br&gt;&lt;br&gt;&lt;br&gt;Obviously, only published tasks will be visible to clients, you wouldn't want to expose critical or trivial tasks to clients. &lt;br&gt;&lt;br&gt;&lt;strong&gt;Here is a glimpse of what it looks like to your team&lt;/strong&gt;&lt;br&gt;&lt;br&gt;&lt;a href="http://limingxu.com/blogs/xu_web_chronicle/WindowsLiveWriter/JumptreeProjectManagementv1.1PreviewBa.0_13A68/TaskViewInternally.png"&gt;&lt;img style="border-top-width:0px;border-left-width:0px;border-bottom-width:0px;border-right-width:0px;" height="460" alt="TaskViewInternally" src="http://limingxu.com/blogs/xu_web_chronicle/WindowsLiveWriter/JumptreeProjectManagementv1.1PreviewBa.0_13A68/TaskViewInternally_thumb.png" width="466" border="0"&gt;&lt;/a&gt; &lt;br&gt;&lt;br&gt;&lt;strong&gt;The same list of tasks viewed by client (notice task id 43 and 45 are the published ones)&lt;/strong&gt;&lt;br&gt;&lt;br&gt;&lt;a href="http://limingxu.com/blogs/xu_web_chronicle/WindowsLiveWriter/JumptreeProjectManagementv1.1PreviewBa.0_13A68/TaskViewClient.png"&gt;&lt;img style="border-top-width:0px;border-left-width:0px;border-bottom-width:0px;border-right-width:0px;" height="287" alt="TaskViewClient" src="http://limingxu.com/blogs/xu_web_chronicle/WindowsLiveWriter/JumptreeProjectManagementv1.1PreviewBa.0_13A68/TaskViewClient_thumb.png" width="466" border="0"&gt;&lt;/a&gt;&lt;br&gt;&lt;br&gt;It's important to note though, your clients can't create nor edit tasks. The reason being is that first, everything that you do, should let the project manager knows first because he/she has to allocate time and budget for it. In addition, it should be your project manager who decides what your team is suppose to do, not the client, therefore, we decided to make the &lt;strong&gt;tasks view only to clients&lt;/strong&gt;. &lt;br&gt;&lt;br&gt;One additional feature is that if you decides to create a published task to a milestone, but the milestone itself is not published, it wouldn't make sense for you to publish the task when your project manager doesn't want the milestone to be seen by the clients. Therefore, &lt;br&gt;&lt;br&gt;&lt;strong&gt;Deny Task Publishing Under Unpublished Milestone&lt;/strong&gt;&lt;br&gt;&lt;br&gt;&lt;a href="http://limingxu.com/blogs/xu_web_chronicle/WindowsLiveWriter/JumptreeProjectManagementv1.1PreviewBa.0_13A68/NewTaskPublishError.png"&gt;&lt;img style="border-top-width:0px;border-left-width:0px;border-bottom-width:0px;border-right-width:0px;" height="371" alt="NewTaskPublishError" src="http://limingxu.com/blogs/xu_web_chronicle/WindowsLiveWriter/JumptreeProjectManagementv1.1PreviewBa.0_13A68/NewTaskPublishError_thumb.png" width="436" border="0"&gt;&lt;/a&gt; &lt;br&gt;&lt;br&gt;&lt;strong&gt;5. Get Organized with Batch Update&lt;/strong&gt; &lt;br&gt;&lt;br&gt;One of the complains we've received in v1.0 is that you couldn't batch update tasks and discussions. No worry, we heard you loud and clear. In v1.1, we've added batch update to tasks, discussion and the new files management. You can almost update any attributes of that particular section as long as you have the proper permission. &lt;br&gt;&lt;br&gt;&lt;strong&gt;A Sample of Task Batch Update&lt;br&gt;&lt;br&gt;&lt;/strong&gt;&lt;br&gt;&lt;a href="http://limingxu.com/blogs/xu_web_chronicle/WindowsLiveWriter/JumptreeProjectManagementv1.1PreviewBa.0_13A68/BatchUpdate.png"&gt;&lt;img style="border-top-width:0px;border-left-width:0px;border-bottom-width:0px;border-right-width:0px;" height="704" alt="BatchUpdate" src="http://limingxu.com/blogs/xu_web_chronicle/WindowsLiveWriter/JumptreeProjectManagementv1.1PreviewBa.0_13A68/BatchUpdate_thumb.png" width="755" border="0"&gt;&lt;/a&gt;&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;&lt;strong&gt;6. Mass Emailing For Project Manager and Administrator&lt;/strong&gt;&amp;nbsp; &lt;br&gt;&lt;br&gt;So you are the project manager and you want to quickly email your whole team without starting up a discussion because it won't be appropriate nor do you want to assign tasks to everyone because it's not a task? &lt;br&gt;&lt;br&gt;This is the type of requests we've received and sure thing. Again, we heard you and we agree. Now, with the mass email capability, you can email your entire team and clients without digging through you email list. &lt;br&gt;&lt;br&gt;&lt;a href="http://limingxu.com/blogs/xu_web_chronicle/WindowsLiveWriter/JumptreeProjectManagementv1.1PreviewBa.0_13A68/ProjectManagerEmail.png"&gt;&lt;img style="border-top-width:0px;border-left-width:0px;border-bottom-width:0px;border-right-width:0px;" height="704" alt="ProjectManagerEmail" src="http://limingxu.com/blogs/xu_web_chronicle/WindowsLiveWriter/JumptreeProjectManagementv1.1PreviewBa.0_13A68/ProjectManagerEmail_thumb.png" width="755" border="0"&gt;&lt;/a&gt; &lt;br&gt;The same type of functionality exist for administrators if you have to let every system users know that for instance, you will be doing server upgrades at midnight. &lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;strong&gt;The Rests (No screen shots due to cosmetic styling still in progress) &lt;br&gt;&lt;br&gt;URL Proxy Support&lt;br&gt;&lt;br&gt;&lt;/strong&gt;Some customers is behind firewall and therefore, the email being send out is the IP address from inside which is not accessible from outside. This issue is addressed in this released and with a simple configuration in the admin section, all your email will have the external IP address on it. &lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;strong&gt;One Page Project View&lt;br&gt;&lt;br&gt;&lt;/strong&gt;In v1.0 project detail,&amp;nbsp; we had milestones with tasks attached to them. However, one thing was missing. What about &lt;strong&gt;tasks with NO milestone&lt;/strong&gt;? Where did they go? &lt;br&gt;&lt;br&gt;That was our mistake. It is fixed in V1.1. Now in one page, you can quickly get a glimpse of everything in your project. &lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;strong&gt;Reduced Page rendering size by 30%-90% reported via &lt;a href="http://developer.yahoo.com/yslow/"&gt;YSlow&lt;/a&gt; &lt;br&gt;&lt;br&gt;&lt;/strong&gt;Yes, we've also noticed in v1.0, some of the pages depending on how many tasks/discussions you had, sometimes the page size could grow to a huge 800kb. NOT GOOD! &lt;br&gt;&lt;br&gt;We're glad that we've addressed that as well. Using the Yahoo developed YSlow analyzer and &lt;a href="http://developer.yahoo.com/performance/index.html#rules"&gt;following the rules for high performance web sites&lt;/a&gt; (although, we still need to work on a few items), currently a 800kb page under our new infrastructure, it's reduced to merely 81kb, almost a 90% reduction! This I'm sure, will make everyone VERY happy. &lt;br&gt;&lt;br&gt;On a similar note,&amp;nbsp; all the Javascripts and CSS are now minified. An old 35kb of Javascript, after compression is reduce to 25kb. Even though it's little, but in this release, we try to take away whatever we can to improve your experience. &lt;br&gt;&lt;br&gt;&lt;br&gt;That's it for the v1.1 preview. It will be released in two weeks or so. So please come back and check on us. &lt;br&gt;&lt;br&gt;Hope we will be able to bring you a whole new experience and as always, if you have any questions at all, please come by our &lt;a href="http://jumptree.com/forum/"&gt;Jumptree forum&lt;/a&gt; and question away. &lt;/p&gt;&lt;img src="http://limingxu.com/aggbug.aspx?PostID=17932" width="1" height="1"&gt;</description></item><item><title>Window Workflow Foundation - A Simple Case Study, what does it offer?</title><link>http://limingxu.com/blogs/xu_web_chronicle/archive/2007/11/20/window-workflow-foundation-a-simple-case-study-what-does-it-offer.aspx</link><pubDate>Tue, 20 Nov 2007 04:08:00 GMT</pubDate><guid isPermaLink="false">e33cfc3b-0a20-4406-a9f8-726f3a931aa8:16827</guid><dc:creator>Liming</dc:creator><slash:comments>0</slash:comments><comments>http://limingxu.com/blogs/xu_web_chronicle/comments/16827.aspx</comments><wfw:commentRss>http://limingxu.com/blogs/xu_web_chronicle/commentrss.aspx?PostID=16827</wfw:commentRss><wfw:comment>http://limingxu.com/blogs/xu_web_chronicle/rsscomments.aspx?PostID=16827</wfw:comment><description>&lt;p&gt;To be honest, workflow&amp;nbsp;engine&amp;nbsp;is a concept hard to digest. If you haven't used it before, then it's probably hard to imagine where to use it and why you should use it. During my previous project, I had the pleasure of using a workflow engine developed by Cardiff, it's call Liquid Office (v4.1). While the development experience with it was&amp;nbsp;not&amp;nbsp;so great&amp;nbsp;(and I'll explain what and why later on), &amp;nbsp;it definitely helped me understood the benefits of using a workflow and jump started my interest in .NET Windows Workflow Foundation. &lt;br&gt;&lt;br&gt;&lt;b&gt;Let's talk about the requirement.&lt;/b&gt; &lt;br&gt;&lt;br&gt;Imagine you are developing an ASP.NET application for people with disabilities to apply for benefits. &amp;nbsp;The users of the application have many different roles. Applicant, Office&amp;nbsp;Clerks, &amp;nbsp;Doctor, Lawyers, Chief Officer,&amp;nbsp;President, Insurance Underwriter, Hospital Staff, etc. Each role needs to approve the application for it to get processed and move onto the next&amp;nbsp;role. &amp;nbsp;On top of it, there are many complicated business logic related to each role. For example, &lt;br&gt;&lt;/p&gt; &lt;ul&gt; &lt;li&gt;Applicant fills in the application and it goes to office clerks. If office clerks approves it, then it goes to the doctor. Otherwise, return to the applicant. &lt;/li&gt; &lt;li&gt;Doctor needs to make decisions based on applicant's symptoms&amp;nbsp;in order to give it a rating from 30%-100%. Underwriter needs to see if the applicants is a civilian or military,&amp;nbsp; if they requested a lawyer or not, etc. &lt;/li&gt; &lt;li&gt;Based on overall rating of everyone, a price range is estimated and forward back to applicant for review. &lt;br&gt;&lt;/li&gt;&lt;/ul&gt; &lt;p&gt;&lt;b&gt;Traditional Approach&lt;/b&gt;&lt;/p&gt; &lt;p&gt;Now, traditionally,&amp;nbsp;we would write all these business logic inside our business layer. If there are any changes, then we change the code and re-upload it. What do we need a workflow engine for?&amp;nbsp;&lt;br&gt;&lt;br&gt;&lt;b&gt;Here are a couple of&amp;nbsp; issues&lt;/b&gt;&lt;/p&gt; &lt;ul&gt; &lt;li&gt;The flow&amp;nbsp;is somewhat hard wired. In the above example, Applicant goes to Office Clerks, Office Clerks goes to Doctor, Doctor goes to either Lawyer or Chief Officer, etc.&amp;nbsp; What happens if you want to remove certain roles or insert certain roles in between the approval process?&amp;nbsp; &lt;br&gt;&lt;br&gt;Say the new workflow process demands that after the applicants applies, it goes directly to Doctor, we will skip the Office Clerk. What happens to the processes already forwarded to Office Clerks? &lt;br&gt;&lt;br&gt;&lt;/li&gt; &lt;li&gt;Okay. You might say the above reasons&amp;nbsp;are not a big deal because to the first issue, you can configure some XML&amp;nbsp;files or store the flow in a database (Remember now,&amp;nbsp;this is&amp;nbsp;the actual work you have to do, essentially writing an engine yourself)&amp;nbsp;and for the second issue, you can write&amp;nbsp;a script and convert all applications which already forwarded to&amp;nbsp;Office Clerk&amp;nbsp;and now change them to Doctor. Well, let me raise another issue. &amp;nbsp;&lt;br&gt;&lt;br&gt;Before the changes, you already processed 4000 cases, among which, there are 3000 cases still in progress. The requirement is that the existing 3000 cases still use the old process, but the new applicants will start to use the new process. How would you resolve this issue with your home-made configuration? &lt;br&gt;&lt;br&gt;&lt;/li&gt; &lt;li&gt;Say the management made a new decision and you need to change how the business flow works for maybe only around 500 applicants out of the 3000 active cases out there based on certain new requirements?&lt;br&gt;&lt;br&gt;&lt;/li&gt; &lt;li&gt;Your code&amp;nbsp;is tightly bounded to the workflow. &amp;nbsp;If the&amp;nbsp;workflow changes significantly, or changes frequently, then you will have a heck of time&amp;nbsp;maintaining your code around it. &lt;/li&gt;&lt;/ul&gt; &lt;p&gt;&lt;br&gt;Hopefully, the above issues raised your eyebrows.&amp;nbsp;&amp;nbsp;I've asked some questions&amp;nbsp;on the &lt;a href="http://forums.microsoft.com/MSDN/ShowForum.aspx?ForumID=122&amp;amp;SiteID=1"&gt;Windows Workflow Foundation forum&lt;/a&gt; in regards to these issues and they can be summarized as the following&lt;br&gt;&lt;/p&gt; &lt;div class="wlWriterSmartContent" id="0767317B-992E-4b12-91E0-4F059A8CECA8:b85d6a02-6055-4656-9368-929eb5b50c1f" style="margin:0px;padding:0px;display:inline;float:none;"&gt;Technorati Tags: &lt;a href="http://technorati.com/tags/WF" rel="tag"&gt;WF&lt;/a&gt;, &lt;a href="http://technorati.com/tags/.NET" rel="tag"&gt;.NET&lt;/a&gt;&lt;/div&gt; &lt;ul&gt; &lt;li&gt;When a new workflow is published, does it overwrite the existing ones? If so, what happens to the workflow instances already in progress? Do the old active instances still use the old workflow or the new one?&lt;br&gt;&lt;/li&gt; &lt;li&gt;&amp;nbsp;Does workflow foundation keeps track of revisions? If so, then do I have a choice of which revision to run? For example, from Jan - June, we used one process and after June, we started to use another modified process. Do I have a choice to indicate which process that I want to run?&amp;nbsp;&lt;br&gt;&lt;/li&gt; &lt;li&gt;&amp;nbsp;Suppose after we deployed, we need to change the workflow for selected amount of cases,&amp;nbsp; say 2000 instances out of 15,000 base on certain requirements, can workflow do that?&lt;br&gt;&lt;/li&gt;&lt;/ul&gt; &lt;p&gt;Liquid Office 4.1 solved some of these issues, but during its development, I had several major issues. &lt;br&gt;&lt;br&gt;&lt;b&gt;Here are the Show Stoppers&lt;/b&gt;&lt;br&gt;&lt;br&gt;1. Liquid Office 4.1 is asynchronous based.&amp;nbsp;&amp;nbsp;When my web page makes a call through web services and ask the Liquid Offices to make a decision, update the database and alert the web page as to where to go next? Well, my page post-backed, and finished before Liquid Office finished its process. So my web page basically stayed where it is and never moved onto the places it was suppose to go. We "resolved" it by putting the thread to sleep for a good 5-10 seconds. As you can imagine, unbearable and unacceptable. &lt;br&gt;&lt;br&gt;2. Liquid Office 4.1 does not support custom return types. All it returns is to let you know &amp;nbsp;if the workflow had exception or not. If no exception, then you have to assume it worked okay. There is no way of asking it to return the database surrogate key that was just inserted. &lt;br&gt;&lt;br&gt;3. Liquid Office's engine makes new revisions separate from the&amp;nbsp;old revisions.&amp;nbsp;So if it is your intentions to replace the old revisions with the new revision (which is my case), sorry sir. No can't do.&amp;nbsp;The old revisions are cached and the old workflow would still follow the old workflow. Not the new one. &lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;b&gt;.NET Workflow Foundation&lt;/b&gt;&lt;br&gt;&lt;br&gt;I'm glad to find out that unlike Liquid Office 4.1, .NET workflow Foundation&amp;nbsp;does not suffers&amp;nbsp;the same type of issues.&amp;nbsp; Here are the answers&amp;nbsp;replied via&amp;nbsp;Microsoft MSFT&lt;br&gt;&lt;br&gt;1. When a new workflow is published, does it overwrite the existing ones? If so, what happens to the workflow instances already in progress? Do the old active instances still use the old workflow or the new one?&lt;/p&gt; &lt;blockquote&gt; &lt;p&gt;&lt;br&gt;No, it does not overwrite the existing ones. Workflows are .NET types and we use normal .NET versioning so if you make a change to a workflow you need to increment the version and make the assemblies for all running versions accessible to the workflow runtime. Old running instance will continue to run as long as the runtime has access to the assembly that they are defined in.&lt;/p&gt;&lt;/blockquote&gt; &lt;p&gt;2. Related to #1.&amp;nbsp; . Does workflow foundation keeps track of revisions? If so, then do I have a choice of which revision to run? For example, from Jan - June, we used one process and after June, we started to use another modified process. Do I have a choice to indicate which process that I want to run?&lt;/p&gt; &lt;blockquote&gt; &lt;p&gt;Since it is a .NET type you just need to use the type from the version of the assembly that you want to run at the time.&lt;/p&gt;&lt;/blockquote&gt; &lt;p&gt;3. Calling Workflow from ASP.NET, does it run asynchronously or synchronously? Liquid Office runs asynchronously and when its workflow is updating our database, the ASP.NET pages is already finished and such still display the old data. We had to refresh the browser a few times till workflow is finished updating the database. Show stopper. &lt;/p&gt; &lt;blockquote&gt; &lt;p&gt;It runs synchronously in that it is recommended to use the ManualWorkflowSchedulerService in ASP.NET and you must donate a thread for the workflow to be run. Once the current work is done the control is returned to the page.&lt;br&gt;&lt;/p&gt;&lt;/blockquote&gt; &lt;p&gt;4. Suppose after we deployed, we need to change the workflow for selected amount of cases,&amp;nbsp; say 2000 instances out of 15,000 base on certain requirement, can workflow do that? &lt;/p&gt; &lt;blockquote&gt; &lt;p&gt;You would want to use Dynamic Update to update the existing workflow and you can use any logic you would like to determine which instance you want to update and which you don’t, there isn’t a way to update all running instances in one shot.&lt;/p&gt;&lt;/blockquote&gt; &lt;p&gt;&lt;br&gt;Hopefully, I'm not too wordy with my article. I hope it gives those of you&amp;nbsp;who are interested in .NET workflow foundation a basic understanding of what it does. &lt;/p&gt;&lt;img src="http://limingxu.com/aggbug.aspx?PostID=16827" width="1" height="1"&gt;</description><category domain="http://limingxu.com/blogs/xu_web_chronicle/archive/tags/.NET+3.0/default.aspx">.NET 3.0</category><category domain="http://limingxu.com/blogs/xu_web_chronicle/archive/tags/Workflow+Foundation/default.aspx">Workflow Foundation</category></item><item><title>Looking forward to a break!!</title><link>http://limingxu.com/blogs/xu_web_chronicle/archive/2007/08/26/looking-forward-to-a-break.aspx</link><pubDate>Sun, 26 Aug 2007 22:00:00 GMT</pubDate><guid isPermaLink="false">e33cfc3b-0a20-4406-a9f8-726f3a931aa8:9665</guid><dc:creator>Liming</dc:creator><slash:comments>0</slash:comments><comments>http://limingxu.com/blogs/xu_web_chronicle/comments/9665.aspx</comments><wfw:commentRss>http://limingxu.com/blogs/xu_web_chronicle/commentrss.aspx?PostID=9665</wfw:commentRss><wfw:comment>http://limingxu.com/blogs/xu_web_chronicle/rsscomments.aspx?PostID=9665</wfw:comment><description>&lt;p&gt;Oh well, it seems as if I have gone away forever, things are rolling around as if it's out of control.&lt;br&gt;&lt;br&gt;I have been pretty much been rolling in the mud, learning Liquid Office v4. Spring MVC, Hibernate, JSTL and Websphere 5, 6, and 7 releases. On the .NET side, Visual Studio 2008 came out, workflow foundation, silverlight, presentation/communication foundations are and will be my main focuses in the next few month. &lt;br&gt;&lt;br&gt;Schedule is tight and personal life is going crazy, I don't get much time at all left for anything else. These days, in and out, we are doing nothing but work, come home and sleep&amp;nbsp; once more. We sure hope things will become much better after the hump, after end of September, hopefully everything will be better. &lt;br&gt;&lt;br&gt;&lt;br&gt;&amp;nbsp;&lt;/p&gt;&lt;img src="http://limingxu.com/aggbug.aspx?PostID=9665" width="1" height="1"&gt;</description><category domain="http://limingxu.com/blogs/xu_web_chronicle/archive/tags/News/default.aspx">News</category><category domain="http://limingxu.com/blogs/xu_web_chronicle/archive/tags/Workflow+Foundation/default.aspx">Workflow Foundation</category></item><item><title>Reformat PC Craziness - Free Windows Software for Developers</title><link>http://limingxu.com/blogs/xu_web_chronicle/archive/2007/06/20/reformat-pc-craziness-free-windows-software-for-developers.aspx</link><pubDate>Wed, 20 Jun 2007 08:01:00 GMT</pubDate><guid isPermaLink="false">e33cfc3b-0a20-4406-a9f8-726f3a931aa8:7161</guid><dc:creator>Liming</dc:creator><slash:comments>0</slash:comments><comments>http://limingxu.com/blogs/xu_web_chronicle/comments/7161.aspx</comments><wfw:commentRss>http://limingxu.com/blogs/xu_web_chronicle/commentrss.aspx?PostID=7161</wfw:commentRss><wfw:comment>http://limingxu.com/blogs/xu_web_chronicle/rsscomments.aspx?PostID=7161</wfw:comment><description>&lt;p&gt;I had to reformat my PC, no way out of it, but little did I expect the amount of time to get all my software installed. &lt;br&gt;&lt;br&gt;I keep a list of the absolute necessary software that I need to do my work, they have to be&amp;nbsp;free, open source, help me be productive and to keep my&amp;nbsp;PC as clean as possible this time,&amp;nbsp;I&amp;nbsp;narrowed&amp;nbsp;them down to 1/3 of the software that used to&amp;nbsp;be on my computer and yet? It's still HUGE. What&amp;nbsp;in the world? I looked them over and over again, I just can't live without any of them, it's crazy I'm telling you. &lt;br&gt;&lt;br&gt;Okay, I develop both .NET applications and Java applications, so maybe I overdone it&amp;nbsp;a little bit, but in all seriousness, I really think&amp;nbsp;I need the following software which comprise about 2/3 of my list and around 71 programs!!&amp;nbsp;If you are .NET developer and/or Java Developer, I think you ought to check them out as well if you don't already have them. &lt;br&gt;&lt;br&gt;&lt;b&gt;Non-Programming Specific&amp;nbsp;Software for a Developer (19 items)&lt;/b&gt;&lt;/p&gt; &lt;ul&gt; &lt;li&gt;&lt;a href="http://www.altiris.com/Products/SoftwareVirtualizationSolution.aspx"&gt;Altiris&lt;/a&gt;&lt;br&gt;&lt;br&gt;I need Altiris to install any rarely used or beta software. This way, I can easily uninstall them and activate them when I need it. It keeps my PC healthy, must have! &lt;br&gt;&lt;br&gt; &lt;li&gt;&lt;a href="http://zabkat.com/x2lite.htm"&gt;xplorer2lite&lt;/a&gt; &lt;br&gt;&lt;br&gt;A replacement for windows explorer. It provides tabbed interface, advanced file manipulation capabilities (split files, rename files, preview files, bookmark, hook into command prompt, folder synchronization, etc) Just some of the functionality that I use.&amp;nbsp; &lt;br&gt;&lt;br&gt; &lt;li&gt;&lt;a href="http://www.izarc.org/"&gt;IZar Zip Utility&lt;/a&gt;&lt;br&gt;&lt;br&gt;Absolutely the best zip utility, second to none. Support many many extensions, including &amp;nbsp;.iso extensions. I need this to be installed FIRST before I can install my visual Studio files. &lt;br&gt;&lt;br&gt; &lt;li&gt;AVG AntiVirus&lt;br&gt;AVG AntiSpyWare&lt;br&gt;AVG AntiRootKit&lt;br&gt;&lt;br&gt;Self explanatory. Need to get my PC/Code protected and AVG is probably one of the best free ones that I've used. &lt;br&gt;&lt;br&gt; &lt;li&gt;&lt;a href="http://virtuawin.sourceforge.net/"&gt;VirtualWin Virtual Desktop Manager&lt;/a&gt;&lt;br&gt;&lt;br&gt;Okay, I work with a lot of programs opened up at the same time. I need multiple desktops, VirtualWin is probably one of the best free one that I've used with very small footprint. Must have (although MS virtual desktop is good too if I only need 4 virtual desktops) &lt;br&gt;&lt;br&gt; &lt;li&gt;&lt;a href="http://users.forthnet.gr/pat/efotinis/programs/taskarrange.html"&gt;Task Arrange&lt;/a&gt;&lt;br&gt;&lt;br&gt;Like I mentioned, I have so many windows opened at the same time, even with virtual desktop, I still might have many windows opened in a particular one. However, I like them to be in a particular order, so I can be productive, task arrange helps me order them in the fashions that helps my brain think the best. MUST have. &lt;br&gt;&lt;br&gt; &lt;li&gt;&lt;a href="http://www.microsoft.com/windowsxp/downloads/powertoys/xppowertoys.mspx"&gt;PowerToys&lt;/a&gt;&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; SyncnToy 1.4 (will install to a folder you specifcy)&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ClearType Tuner&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; TweakUI PowerToy&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Open Command Prompt Here PowerToy&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; TaskSwitch&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; PowerCaculator&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ImageResizer&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Virtual Desktop&lt;br&gt;&lt;br&gt;All these utilities are needed. SyncToysynch your folders really well,&amp;nbsp; I have multiple PCs, before going to sleep, run it and be done with it, although xplorelite offers similar functionality, but for mass files, I still use SyncToy.&amp;nbsp;&lt;br&gt;&lt;br&gt;ClearType is a must if you want to protect your eyes. &lt;br&gt;&lt;br&gt;TweakUI just lets you tweak so many things on your windows, can't live without it. &lt;br&gt;&lt;br&gt;Open Command prompt here is&amp;nbsp;needed when I develop my Java applications, very convent, &lt;br&gt;&lt;br&gt;TaskSwitch basically replace your traditional alt-tab&amp;nbsp;and displays a preview of all the window, since I alt tab all the time,&amp;nbsp;check. Power Calculator&amp;nbsp;is&amp;nbsp;just bigger, love it. &lt;br&gt;&lt;br&gt;ImageResizer helps me resize a lot images at the same time easily, very handy. &lt;br&gt;&lt;br&gt;Virtual Desktop again, &amp;nbsp;if I only need 4 desktops, then I will choose this over Virtual Win and the reason is I can't see it&amp;nbsp;in my processes, so it "seems" like it takes even less memory that virtual win. &lt;br&gt;&lt;br&gt; &lt;li&gt;&lt;a href="http://www.pcinspector.de/file_recovery/UK/welcome.htm"&gt;PC File&amp;nbsp; Inspector Recovery&lt;/a&gt;&lt;br&gt;&lt;br&gt;You know we all accidentally deleted a piece of code and only later, oh shoot, I needed it but it's already deleted!! What to do? PC Inspector comes to rescue. Do yourself a favor and install it, save yourself some headaches later. &lt;br&gt;&lt;br&gt; &lt;li&gt;&lt;a href="http://www.heidi.ie/eraser/"&gt;Eraser&lt;/a&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br&gt;&lt;br&gt;You think you deleted your file? Well, with PC File Inspector, you can recover it. We all have those files that we want to permanently delete them without anybody have the chance ever to see them again. Eraser is what you need. I'm anal&amp;nbsp;when it comes to&amp;nbsp;privacy, so it's a must tool. &lt;br&gt;&lt;br&gt; &lt;li&gt;&lt;a href="http://keepass.info/"&gt;KeePass&lt;/a&gt;&lt;br&gt;&lt;br&gt;How&amp;nbsp;many passwords do a normal developer holds in their brains? Let's see, personal items&amp;nbsp;including emails,&amp;nbsp;online bank,&amp;nbsp;online bank to work related ones like&amp;nbsp;company logons, test server, database servers, production servers, subversion/cvs, application passwords..just to name a few. Are we superman? We need a secure software to keep our password. Keepass is the answer. &lt;/li&gt;&lt;/ul&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;&lt;b&gt;Generic Tools for a Generic Developer (15 items)&lt;/b&gt;&lt;br&gt;&lt;/p&gt; &lt;ul&gt; &lt;li&gt;&lt;a href="http://www.google.com/search?hl=en&amp;amp;q=TightVNC&amp;amp;btnG=Google+Search"&gt;TIghtVNC&lt;/a&gt;&lt;br&gt;&lt;br&gt;If you are like me,&amp;nbsp;then I know you have multiple PCs. I have a test server (cvs, subversion, web servers, etc), a database&amp;nbsp;server, a development server and a multi-media (music,&amp;nbsp;movies, etc). How do you switch back&amp;nbsp;/ forth and remotely control your&amp;nbsp;PCs easily?&amp;nbsp;TightVNC is REAL&amp;nbsp;"tight"! You ought to see for yourself.&amp;nbsp; &lt;br&gt;&amp;nbsp;&lt;br&gt; &lt;li&gt;&lt;a href="http://www.microsoft.com/technet/sysinternals/fileanddiskutilities.mspx"&gt;Process Explorer (Replacement of FileMon)&lt;/a&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br&gt;&lt;br&gt;Okay developers. If you don't have this, then you are missing out. You get to see all files, processes, activities on your computer at any given time, if you need to track what program is using which dlls, you need it, trust me. &lt;br&gt;&lt;br&gt; &lt;li&gt;&lt;a href="http://www.dr-hoiby.com/WhoLockMe/"&gt;WhoLockedMe&lt;/a&gt; &lt;br&gt;&lt;br&gt;You ever wanted to delete a file while developing your application and it just wont' let you delete the file you need to get rid of? Kept getting "another process is using this file" error? Use this and kill that sucker! No more reboot your PC. MUST have. &lt;br&gt;&lt;br&gt; &lt;li&gt;&lt;a href="http://filezilla.sourceforge.net/"&gt;Filezilla&lt;/a&gt;&lt;br&gt;&lt;br&gt;Okay, in my opinion, it's probably the most widely used open source / free FTP client. Enough said. Now, it does have some problems. If I upload loads of files at the same time, sometimes it screws up. My only pet peeve.&lt;br&gt;&lt;br&gt; &lt;li&gt;&lt;a href="http://www.rssbandit.org/"&gt;RssBandit&lt;/a&gt;&lt;br&gt;&lt;br&gt;As a developer, you need to keep up with your reading! To keep yourself from going crazy and stressed out, use a tool like RssBandit or even Google Rss Feed to keep yourself organized. &lt;br&gt;&lt;br&gt; &lt;li&gt;&lt;a href="http://notepad-plus.sourceforge.net/uk/site.htm"&gt;Notepad++&lt;/a&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; (GVim, Programmer's Notepad, Notepad2)&lt;br&gt;&lt;br&gt;Guys, hear me out. This one is probably the BEST replacement for windows notepad. It's crazy!! I've used many many free notepad-like replacements (GVim, Programmer's notepad, notepad2, ultraedit), but none&amp;nbsp;is as easy and yet&amp;nbsp;just as powerful as Notepad++. &amp;nbsp;You HAVE to try this one out. &lt;br&gt;&lt;br&gt; &lt;li&gt;&lt;a href="http://www.httrack.com/"&gt;Httrack&lt;/a&gt;&lt;br&gt;&lt;br&gt;Okay, I know you developers wanted to rip a site at some point in your life. Either a open source site for its documentation to view offline or get some files off a site in one go. Httrack is what you need. &lt;br&gt;&lt;br&gt; &lt;li&gt;&lt;a href="http://www.firefox.com"&gt;Firefox&lt;/a&gt; &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; (addons)&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; FireBug&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Fission&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; LocationBar&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Stealther&lt;br&gt;&lt;br&gt;Enough said. &lt;br&gt;&lt;br&gt; &lt;li&gt;&lt;a href="http://www.orbit.org/replace/"&gt;BKReplaceEm&lt;/a&gt;&lt;br&gt;&lt;br&gt;Okay, you know you've wanted to replace certain text in projects BAD. What to do, what to do. BkReplaceEm will go through all your folders, find the files with the text you want to replace and replace them! It even saves a backup copy for you just in case. FAST and FURIOUS. love it. &lt;br&gt;&lt;br&gt; &lt;li&gt;&lt;a href="http://www.baremetalsoft.com/baretail/"&gt;BareTail&lt;/a&gt;&lt;br&gt;&lt;br&gt;Dude! You know you have log files in your project. If you don't, then you are not developing your application correctly. But how do you view your log files like you do in Unix "tail -f"? Bare Tail is excellent excellent. Highly recommended. &lt;br&gt;&lt;br&gt; &lt;li&gt;&lt;a href="http://winmerge.org/"&gt;WinMerge&lt;/a&gt;&lt;br&gt;&lt;br&gt;Okay, I don't know about you, but I find myself compare multiple files all the time and trying to find out what the differences are. WinMerge does that AND it'll help you merge the differences. SWEET SWEET tool.&lt;br&gt;&lt;br&gt; &lt;li&gt;&lt;a href="http://www.cryptool.com/"&gt;CrypTool&lt;/a&gt;&lt;br&gt;&lt;br&gt;Okay, I know it's obvious, but all developers should learn&amp;nbsp;about cryptography. This tool really helps you understand all&amp;nbsp;aspects of this&amp;nbsp;dark&amp;nbsp;area of programming. &amp;nbsp; &lt;br&gt;&lt;br&gt; &lt;li&gt;&lt;a href="http://tortoisesvn.tigris.org/"&gt;Tortoise&lt;/a&gt;&amp;nbsp;/ SubVersion&lt;br&gt;&lt;br&gt;Well, if you have subversion for your project, you know you need it. &lt;br&gt;&lt;br&gt; &lt;li&gt;&lt;a href="http://www.wincvs.org/"&gt;WinCVS&lt;/a&gt;&amp;nbsp;/ CVSNT&lt;br&gt;&lt;br&gt;Same thing. if you have CVS,then you gotta have it. &lt;/li&gt;&lt;/ul&gt; &lt;ul&gt; &lt;li&gt;&lt;a href="http://www.trillian.cc/"&gt;Trillian Basic&lt;/a&gt;&lt;br&gt;&lt;br&gt;Who&amp;nbsp;doesn't have an IM huh? Trillian helps you connected to AIM, Yahoo Messenger, MSN, ICQ. So let's keep everything in one place. &lt;br&gt;&lt;/li&gt;&lt;/ul&gt; &lt;p&gt;The following are the tools I use for .NET and Java respectively, so I won't go into too much details. When I get the time, I'll link them up properly in another time. &lt;/p&gt; &lt;p&gt;&lt;b&gt;&lt;br&gt;Software for .NET Developers (22 Items)&lt;/b&gt;&lt;br&gt;&lt;/p&gt; &lt;ul&gt; &lt;li&gt;Reflector  &lt;li&gt;IISAdmin 1.1  &lt;li&gt;Visual Studio 2005&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Guidance Automation Extension&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; WebServices Factory&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; MS Ajax&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; MS Control ToolKit&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Web Deployment Project&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; CopySourceASHtml&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Project Line Count&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; GhostDoc&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; TestDriven.NET&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Refractor for ASP.NET 2.2&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; SmartParser  &lt;li&gt;NDOC  &lt;li&gt;CLR Profiler  &lt;li&gt;Fiddler  &lt;li&gt;MyGeneration&amp;nbsp;&amp;nbsp;&amp;nbsp;  &lt;li&gt;Management Studio  &lt;li&gt;CruiseControl.NET  &lt;li&gt;ConvertCSharp2VB Offline  &lt;li&gt;SQL Prompt &lt;/li&gt;&lt;/ul&gt; &lt;p&gt;&lt;br&gt;&lt;/p&gt; &lt;p&gt;&lt;b&gt;Software for Java Developers (6 Items)&lt;/b&gt;&lt;br&gt;&lt;/p&gt; &lt;ul&gt; &lt;li&gt;Tomcat  &lt;li&gt;Ant  &lt;li&gt;CruiseControl  &lt;li&gt;MySQL Server 5  &lt;li&gt;MySQL GUI Tools  &lt;li&gt;Eclipse &lt;/li&gt;&lt;/ul&gt; &lt;p&gt;&lt;br&gt;&lt;b&gt;My Other Items (9 Items)&lt;/b&gt;&lt;/p&gt; &lt;ul&gt; &lt;li&gt;Windows Live Writer  &lt;li&gt;ObjectDock  &lt;li&gt;Maxvista  &lt;li&gt;Winamp  &lt;li&gt;Nero  &lt;li&gt;Wink  &lt;li&gt;Cropper  &lt;li&gt;Paint.NET  &lt;li&gt;PDFViewer&lt;br&gt;&lt;/li&gt;&lt;/ul&gt;&lt;img src="http://limingxu.com/aggbug.aspx?PostID=7161" width="1" height="1"&gt;</description><category domain="http://limingxu.com/blogs/xu_web_chronicle/archive/tags/News/default.aspx">News</category><category domain="http://limingxu.com/blogs/xu_web_chronicle/archive/tags/Tools/default.aspx">Tools</category><category domain="http://limingxu.com/blogs/xu_web_chronicle/archive/tags/.NET+Open+Source+Project/default.aspx">.NET Open Source Project</category><category domain="http://limingxu.com/blogs/xu_web_chronicle/archive/tags/.NET+Tools/default.aspx">.NET Tools</category><category domain="http://limingxu.com/blogs/xu_web_chronicle/archive/tags/ASP.NET+2.0/default.aspx">ASP.NET 2.0</category><category domain="http://limingxu.com/blogs/xu_web_chronicle/archive/tags/Java/default.aspx">Java</category></item><item><title>Jumptree Project Management Promotion for X.U Chronicle Readers :) </title><link>http://limingxu.com/blogs/xu_web_chronicle/archive/2007/05/29/jumptree-project-management-promotion-for-x-u-chronicle-readers.aspx</link><pubDate>Tue, 29 May 2007 05:00:00 GMT</pubDate><guid isPermaLink="false">e33cfc3b-0a20-4406-a9f8-726f3a931aa8:6469</guid><dc:creator>Liming</dc:creator><slash:comments>0</slash:comments><comments>http://limingxu.com/blogs/xu_web_chronicle/comments/6469.aspx</comments><wfw:commentRss>http://limingxu.com/blogs/xu_web_chronicle/commentrss.aspx?PostID=6469</wfw:commentRss><wfw:comment>http://limingxu.com/blogs/xu_web_chronicle/rsscomments.aspx?PostID=6469</wfw:comment><description>&lt;p&gt;&lt;span style="font-size:12pt;font-family:'Times New Roman';"&gt;Well, it’s decided that we are going to have a
little promotion here for all my readers out there. In the past few month,
seeing and knowing my articles helped a lot of you, and Jumptree NHibernate Forum
has exceed 571 downloads, the old ASP Tiddly Wiki exceeded 189 and even V1.1
has exceeded 45 downloads in a month of time, it’s great to feel that I can
contribute something back to the community. &lt;br&gt;
&lt;br&gt;
Some of you have emailed us and asked if it’s possible for us to give you a free
copy of Jumptree Project Management, well, you know we can’t do that as we do
need to make a living after all&lt;/span&gt;&lt;span style="font-size:12pt;font-family:Wingdings;"&gt;&lt;span&gt;. :)&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:12pt;font-family:'Times New Roman';"&gt;
But in the spirit of being newly released, I setup a special promotion for all
of you. &lt;br&gt;
&lt;br&gt;
Before 6/30/07, if you purchase &lt;a href="http://jumptree.com"&gt;our project management software&lt;/a&gt;,&amp;nbsp; enter the &lt;b&gt;referral code: LMBJ001&lt;/b&gt;
during checkout, then you will only pay $87 per user instead of the regular $97
per user. Fair enough guys? That's the best I can do people. &lt;br&gt;
&lt;br&gt;
Thanks for all of your report. Again, below are a few of the screen shots we
have. &lt;/span&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size:18pt;"&gt;&lt;a href="http://www.jumptree.com/doc/jumptree-project/projects/index.html"&gt;Projects
Section&lt;/a&gt;&lt;/span&gt;

&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;o:p&gt;&lt;b&gt;&lt;br&gt;&lt;br&gt;Project Overview&lt;br&gt;&lt;/b&gt;&lt;br&gt;&lt;br&gt;&lt;img src="http://www.jumptree.com/images/site/doc/jumptree-project/projects/overview.png" height="374" width="915"&gt;&lt;/o:p&gt;&lt;/p&gt;&lt;p&gt;

&lt;span style="font-size:12pt;font-family:'Times New Roman';"&gt;&lt;img src="http://www.jumptree.com/images/site/doc/jumptree-project/projects/overview-filter.png" height="195" width="794"&gt;&lt;br&gt;
&lt;img src="http://www.jumptree.com/images/site/doc/jumptree-project/projects/overview-statistics.png" height="163" width="300"&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size:12pt;font-family:'Times New Roman';"&gt;&lt;b&gt;Create New Project&lt;br&gt;&lt;br&gt;&lt;/b&gt;&lt;br&gt;&lt;img src="http://www.jumptree.com/images/site/doc/jumptree-project/projects/new-form.png" height="331" width="777"&gt; &lt;b&gt;Indication of closed projects and project details&lt;br&gt;&lt;br&gt;&lt;/b&gt;&lt;br&gt;
&lt;/span&gt;&lt;span style="font-size:18pt;font-family:'Times New Roman';"&gt;&lt;a href="http://www.jumptree.com/doc/jumptree-project/milestones/index.html"&gt;&lt;img src="http://www.jumptree.com/images/site/doc/jumptree-project/projects/status-closed-grid.png" border="0" height="187" width="378"&gt;&lt;br&gt;&lt;img src="http://www.jumptree.com/images/site/doc/jumptree-project/projects/details-overview.png" border="0" height="541" width="777"&gt;&lt;br&gt;&lt;br&gt;Milestone
Section&lt;br&gt;&lt;/a&gt;&lt;/span&gt;&lt;span style="font-size:12pt;font-family:'Times New Roman';"&gt;&lt;br&gt;
&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;br&gt;
&lt;img src="http://www.jumptree.com/images/site/doc/jumptree-project/milestones/overview.png" border="0" height="506" width="915"&gt;&lt;br&gt;
&lt;img src="http://www.jumptree.com/images/site/doc/jumptree-project/milestones/overview-see-tasks.png" height="350" width="422"&gt;&lt;br&gt;&lt;img src="http://www.jumptree.com/images/site/doc/jumptree-project/milestones/details-overview.png" height="376" width="777"&gt;&lt;br&gt;
&lt;/span&gt;&lt;span style="font-size:18pt;font-family:'Times New Roman';"&gt;&lt;a href="http://www.jumptree.com/doc/jumptree-project/tasks/index.html"&gt;&lt;br&gt;&lt;br&gt;Task
Section&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;&lt;span style="font-size:18pt;font-family:'Times New Roman';"&gt;&lt;a href="http://www.jumptree.com/doc/jumptree-project/tasks/index.html"&gt;&lt;br&gt;&lt;img src="http://www.jumptree.com/images/site/doc/jumptree-project/tasks/overview.png" border="0" height="524" width="915"&gt;&lt;/a&gt;&lt;/span&gt;&lt;span style="font-size:12pt;font-family:'Times New Roman';"&gt;&lt;br&gt;
&lt;img src="http://www.jumptree.com/images/site/doc/jumptree-project/tasks/overview-filter.png" border="0" height="312" width="853"&gt;&lt;br&gt;
&lt;img src="http://www.jumptree.com/images/site/doc/jumptree-project/tasks/details-overview.png" border="0" height="304" width="777"&gt;&lt;/span&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;img src="http://limingxu.com/aggbug.aspx?PostID=6469" width="1" height="1"&gt;</description><category domain="http://limingxu.com/blogs/xu_web_chronicle/archive/tags/News/default.aspx">News</category><category domain="http://limingxu.com/blogs/xu_web_chronicle/archive/tags/ASP.NET+2.0/default.aspx">ASP.NET 2.0</category><category domain="http://limingxu.com/blogs/xu_web_chronicle/archive/tags/Project+Management/default.aspx">Project Management</category></item><item><title>How To Make Your Own Web Installer Part II -  Set Up Structure of Jumptree Project ASP.NET Installer</title><link>http://limingxu.com/blogs/xu_web_chronicle/archive/2007/05/29/how-to-make-your-own-web-installer-part-ii-jumptree-project-asp-net-installer.aspx</link><pubDate>Tue, 29 May 2007 02:42:00 GMT</pubDate><guid isPermaLink="false">e33cfc3b-0a20-4406-a9f8-726f3a931aa8:6465</guid><dc:creator>Liming</dc:creator><slash:comments>0</slash:comments><comments>http://limingxu.com/blogs/xu_web_chronicle/comments/6465.aspx</comments><wfw:commentRss>http://limingxu.com/blogs/xu_web_chronicle/commentrss.aspx?PostID=6465</wfw:commentRss><wfw:comment>http://limingxu.com/blogs/xu_web_chronicle/rsscomments.aspx?PostID=6465</wfw:comment><description>&lt;p class="MsoNormal"&gt;It has been awhile and &lt;a href="http://limingxu.com/blogs/xu_web_chronicle/archive/2007/03/27/804.aspx"&gt;as I mentioned previously&lt;/a&gt; , I've seen several people searched “web installer” from search
  engines and stumble crossed my web site. Unfortunately, I never went
  into details of how a web installer works, I sincerely hope those who
  left found their solution eventually. &lt;br&gt;
  &lt;br&gt;
  When we started &lt;a href="http://www.jumptree.com"&gt;Jumptree Project Management&lt;/a&gt;,
  one of the core requirements is to simplify the process of installing a
  web application and after much research and experiments, we think we've came up with a rather satisfying solution and here I want to share with everyone what we did. &lt;br&gt;
&lt;/p&gt;
&lt;p class="MsoNormal"&gt;First thing that comes to mind is a installer is a
  multi-stepped process, right off the bat, the question is do you divide up all
  the steps into separate pages or do you do everything in one single page? &lt;br&gt;
  &lt;br&gt;
  My decision was s single page because this way, I don’t’ have to pass parameters
  back and forth, in addition, view state provided by ASP.NET will ease a lot
  work that I have to do. For this purpose, the “MultiView” ASP.NET web control
  firsts this purpose perfectly. &lt;br&gt;
  &lt;br&gt;
  Now, in our installer, we had 8 steps, but because we had the business
  requirement to setup a default user once the installer is complete and emails
  the customer of the default user information. For simplicity’s sake, we’ll skip
  these steps and show only the necessary parts of the installer, such 6 steps
  and let’s break it down. &lt;br&gt;
&lt;/p&gt;
&lt;p class="MsoNormal"&gt;1.&lt;span style="font-family:'Times New Roman';font-style:normal;font-variant:normal;font-weight:normal;font-size:7pt;line-height:normal;font-size-adjust:none;font-stretch:normal;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;Welcome
  page – welcome the customer and describe your software requirement&lt;/p&gt;
&lt;p class="MsoNormal"&gt;2.&lt;span style="font-family:'Times New Roman';font-style:normal;font-variant:normal;font-weight:normal;font-size:7pt;line-height:normal;font-size-adjust:none;font-stretch:normal;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;License
  Agreement – show the customers your license information and they must agree in
  order to process&lt;/p&gt;
&lt;p class="MsoNormal"&gt;3.&lt;span style="font-family:'Times New Roman';font-style:normal;font-variant:normal;font-weight:normal;font-size:7pt;line-height:normal;font-size-adjust:none;font-stretch:normal;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;Database
  Access – this part is the meat of the installer, identify the database server which
  your application will install to. &lt;/p&gt;
&lt;p class="MsoNormal"&gt;4.&lt;span style="font-family:'Times New Roman';font-style:normal;font-variant:normal;font-weight:normal;font-size:7pt;line-height:normal;font-size-adjust:none;font-stretch:normal;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;Select
  Database – allow the customers to choose from a list of databases available to
  their user id. &lt;/p&gt;
&lt;p class="MsoNormal"&gt;5.&lt;span style="font-family:'Times New Roman';font-style:normal;font-variant:normal;font-weight:normal;font-size:7pt;line-height:normal;font-size-adjust:none;font-stretch:normal;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;Confirmation
  – List all the information the customer entered and allows the opportunity to
  edit them if they want to. This serves as the last step before installer goes
  to work! &lt;/p&gt;
&lt;p class="MsoNormal"&gt;6.&lt;span style="font-family:'Times New Roman';font-style:normal;font-variant:normal;font-weight:normal;font-size:7pt;line-height:normal;font-size-adjust:none;font-stretch:normal;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;Final
  Page – This gives your customer a final confirmation on the result of your installer.
  If successful or if not successful. &lt;/p&gt;
&lt;p class="MsoNormal"&gt;Before we get to coding, let's review the screen shots&lt;br&gt;
&lt;/p&gt;
&lt;br&gt;
&lt;br&gt;
&lt;img src="http://www.limingxu.com/BlogImages/Installer1.Png"&gt; &lt;img src="http://www.limingxu.com/BlogImages/Installer2.Png"&gt; &lt;img src="http://www.limingxu.com/BlogImages/Installer3.Png"&gt; &lt;img src="http://www.limingxu.com/BlogImages/Installer4.Png"&gt;&amp;nbsp;&amp;nbsp; &lt;img src="http://www.limingxu.com/BlogImages/Installer7.Png"&gt; &lt;img src="http://www.limingxu.com/BlogImages/Installer8.Png"&gt;&lt;br&gt;
&lt;br&gt;
&lt;p class="MsoNormal"&gt;Okay, so we got the basic workflow out of the way, let’s
  start some basic coding. &lt;/p&gt;
&lt;p class="MsoNormal"&gt;Multiview is perfect for switching back and forth between
  different views, so let’s set up the structure like so &lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-size:10pt;font-family:'Courier New';color:blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;asp&lt;/span&gt;&lt;span style="font-size:10pt;font-family:'Courier New';color:blue;"&gt;:&lt;/span&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;MultiView&lt;/span&gt;&lt;span style="font-size:10pt;font-family:'Courier New';color:blue;"&gt; &lt;span style="color:red;"&gt;ID&lt;/span&gt;&lt;span style="color:blue;"&gt;="SetUpInstaller"&lt;/span&gt; &lt;span style="color:red;"&gt;ActiveViewIndex&lt;/span&gt;&lt;span style="color:blue;"&gt;="0"&lt;/span&gt; &lt;span style="color:red;"&gt;runat&lt;/span&gt;&lt;span style="color:blue;"&gt;="server"&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;blockquote&gt;
  &lt;p class="MsoNormal"&gt;&lt;span style="font-size:10pt;font-family:'Courier New';color:blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;asp&lt;/span&gt;&lt;span style="font-size:10pt;font-family:'Courier New';color:blue;"&gt;:&lt;/span&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;View&lt;/span&gt;&lt;span style="font-size:10pt;font-family:'Courier New';color:blue;"&gt; &lt;span style="color:red;"&gt;ID&lt;/span&gt;&lt;span style="color:blue;"&gt;="Welcome"&lt;/span&gt; &lt;span style="color:red;"&gt;runat&lt;/span&gt;&lt;span style="color:blue;"&gt;="server"&amp;gt;&lt;/span&gt;&lt;br&gt;
    &lt;br&gt;
    &amp;lt;&lt;/span&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;asp&lt;/span&gt;&lt;span style="font-size:10pt;font-family:'Courier New';color:blue;"&gt;:&lt;/span&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;Button&lt;/span&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt; &lt;span style="color:red;"&gt;ID&lt;/span&gt;&lt;span style="color:blue;"&gt;="ContineueToLicenseButton_FromWelcome&lt;/span&gt;&lt;br&gt;	
    &lt;span style="color:red;"&gt;CommandName&lt;/span&gt;&lt;span style="color:blue;"&gt;="ToLicenseAgreement"&lt;br&gt;
      &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;span style="color:red;"&gt;OnCommand&lt;/span&gt;&lt;span style="color:blue;"&gt;="InstallerNavigation"&lt;/span&gt;&lt;br&gt;
      &lt;/span&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;span style="color:red;"&gt;runat&lt;/span&gt;&lt;span style="color:blue;"&gt;="server"&lt;/span&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br&gt;
      &lt;/span&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;span style="color:red;"&gt;Text&lt;/span&gt;&lt;span style="color:blue;"&gt;="Next
      &amp;amp;raquo;"&lt;br&gt;
      &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:10pt;font-family:'Courier New';color:blue;"&gt;/&amp;gt;&lt;/span&gt;&lt;/p&gt;
  &lt;p class="MsoNormal"&gt;&lt;span style="font-size:10pt;font-family:'Courier New';color:blue;"&gt;	&amp;lt;/&lt;/span&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;asp&lt;/span&gt;&lt;span style="font-size:10pt;font-family:'Courier New';color:blue;"&gt;:&lt;/span&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;View&lt;/span&gt;&lt;span style="font-size:10pt;font-family:'Courier New';color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
  &lt;p class="MsoNormal"&gt;&lt;span style="font-size:10pt;font-family:'Courier New';color:blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;asp&lt;/span&gt;&lt;span style="font-size:10pt;font-family:'Courier New';color:blue;"&gt;:&lt;/span&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;View&lt;/span&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt; &lt;span style="color:red;"&gt;ID&lt;/span&gt;&lt;span style="color:blue;"&gt;="LicenseAgreement"&lt;/span&gt; &lt;span style="color:red;"&gt;runat&lt;/span&gt;&lt;span style="color:blue;"&gt;="server"&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
  &lt;blockquote&gt;
    &lt;p class="MsoNormal"&gt;&lt;span style="font-size:10pt;font-family:'Courier New';color:blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;asp&lt;/span&gt;&lt;span style="font-size:10pt;font-family:'Courier New';color:blue;"&gt;:&lt;/span&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;Button&lt;/span&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt; &lt;span style="color:red;"&gt;ID&lt;/span&gt;&lt;span style="color:blue;"&gt;="BackToWelcomeButton_FromLiceseAgreement"&lt;/span&gt;&lt;br&gt;
  &lt;span style="color:red;"&gt;CommandName&lt;/span&gt;&lt;span style="color:blue;"&gt;="ToWelcome"&lt;/span&gt;&lt;br&gt;
  &lt;span style="color:red;"&gt;OnCommand&lt;/span&gt;&lt;span style="color:blue;"&gt;="InstallerNavigation"&lt;/span&gt;&lt;br&gt;
  &lt;span style="color:red;"&gt;runat&lt;/span&gt;&lt;span style="color:blue;"&gt;="server"&lt;/span&gt;&lt;br&gt;
  &lt;span style="color:red;"&gt;Text&lt;/span&gt;&lt;span style="color:blue;"&gt;="&amp;amp;laquo;
    Previous"&lt;/span&gt;&lt;br&gt;
  &lt;/span&gt;&lt;span style="font-size:10pt;font-family:'Courier New';color:blue;"&gt;/&amp;gt;&lt;/span&gt;&lt;/p&gt;
    &lt;p class="MsoNormal"&gt;&lt;span style="font-size:10pt;font-family:'Courier New';color:blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;asp&lt;/span&gt;&lt;span style="font-size:10pt;font-family:'Courier New';color:blue;"&gt;:&lt;/span&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;Button&lt;/span&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt; &lt;span style="color:red;"&gt;ID&lt;/span&gt;&lt;span style="color:blue;"&gt;="ToDBSetup_FromLicenseAgreement"&lt;/span&gt;&lt;br&gt;
  &lt;span style="color:red;"&gt;CommandName&lt;/span&gt;&lt;span style="color:blue;"&gt;="ToDBSetup_FromLicenseAgreement"&lt;/span&gt;&lt;br&gt;
  &lt;span style="color:red;"&gt;OnCommand&lt;/span&gt;&lt;span style="color:blue;"&gt;="InstallerNavigation"&lt;/span&gt;&lt;br&gt;
  &lt;span style="color:red;"&gt;runat&lt;/span&gt;&lt;span style="color:blue;"&gt;="server"&lt;/span&gt;&lt;br&gt;
  &lt;span style="color:red;"&gt;Text&lt;/span&gt;&lt;span style="color:blue;"&gt;="Next
    &amp;amp;raquo;"&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
    &lt;p class="MsoNormal"&gt;&lt;span style="font-size:10pt;font-family:'Courier New';color:blue;"&gt;/&amp;gt;  &lt;/span&gt;&lt;/p&gt;
  &lt;/blockquote&gt;
  &lt;p class="MsoNormal"&gt;&lt;span style="font-size:10pt;font-family:'Courier New';color:blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;asp&lt;/span&gt;&lt;span style="font-size:10pt;font-family:'Courier New';color:blue;"&gt;:&lt;/span&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;View&lt;/span&gt;&lt;span style="font-size:10pt;font-family:'Courier New';color:blue;"&gt;&amp;gt;&lt;br&gt;
    &amp;lt;&lt;/span&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;asp&lt;/span&gt;&lt;span style="font-size:10pt;font-family:'Courier New';color:blue;"&gt;:&lt;/span&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;View&lt;/span&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt; &lt;span style="color:red;"&gt;ID&lt;/span&gt;&lt;span style="color:blue;"&gt;="DataBaseLogin"&lt;/span&gt; &lt;span style="color:red;"&gt;runat&lt;/span&gt;&lt;span style="color:blue;"&gt;="server"&amp;gt;&lt;br&gt;
    &lt;br&gt;
    &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
  &lt;blockquote&gt;
    &lt;p class="MsoNormal"&gt;&lt;span style="font-size:10pt;font-family:'Courier New';color:blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;asp&lt;/span&gt;&lt;span style="font-size:10pt;font-family:'Courier New';color:blue;"&gt;:&lt;/span&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;Button&lt;/span&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt; &lt;span style="color:red;"&gt;ID&lt;/span&gt;&lt;span style="color:blue;"&gt;="BackToLiceseAgreemen_FromDBSetup"&lt;br&gt;
&lt;/span&gt;&lt;span style="color:red;"&gt;CommandName&lt;/span&gt;&lt;span style="color:blue;"&gt;="BackToLiceseAgreemen_FromDBSetup"&lt;/span&gt;&lt;span style="color:red;"&gt;&lt;br&gt;
  OnCommand&lt;/span&gt;&lt;span style="color:blue;"&gt;="InstallerNavigation"&lt;br&gt;
  &lt;/span&gt;&lt;span style="color:red;"&gt;runat&lt;/span&gt;&lt;span style="color:blue;"&gt;="server"&lt;br&gt;
  &lt;/span&gt;&lt;span style="color:red;"&gt;Text&lt;/span&gt;&lt;span style="color:blue;"&gt;="&amp;amp;laquo;
    Previous"&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/p&gt;
    &lt;p class="MsoNormal"&gt;&lt;span style="font-size:10pt;font-family:'Courier New';color:blue;"&gt;/&amp;gt;&lt;/span&gt;&lt;/p&gt;
    &lt;p class="MsoNormal"&gt;&lt;span style="font-size:10pt;font-family:'Courier New';color:blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;asp&lt;/span&gt;&lt;span style="font-size:10pt;font-family:'Courier New';color:blue;"&gt;:&lt;/span&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;Button&lt;/span&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt; &lt;span style="color:red;"&gt;ID&lt;/span&gt;&lt;span style="color:blue;"&gt;="ChooseDB_FromDBSetup"&lt;br&gt;
&lt;/span&gt;&lt;span style="color:red;"&gt;CommandName&lt;/span&gt;&lt;span style="color:blue;"&gt;="ToChooseDB_
  FromDBSetup"&lt;br&gt;
&lt;/span&gt;&lt;span style="color:red;"&gt;OnCommand&lt;/span&gt;&lt;span style="color:blue;"&gt;="InstallerNavigation"&lt;/span&gt;&lt;span style="color:red;"&gt;&lt;br&gt;
  runat&lt;/span&gt;&lt;span style="color:blue;"&gt;="server"&lt;/span&gt;&lt;span style="color:red;"&gt;&lt;br&gt;
    Text&lt;/span&gt;&lt;span style="color:blue;"&gt;="Connect and Choose
      a DB"&lt;/span&gt;&lt;span style="color:blue;"&gt;/&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
    &lt;p class="MsoNormal"&gt;&lt;span style="font-size:10pt;font-family:'Courier New';color:blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;asp&lt;/span&gt;&lt;span style="font-size:10pt;font-family:'Courier New';color:blue;"&gt;:&lt;/span&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;Button&lt;/span&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt; &lt;span style="color:red;"&gt;ID&lt;/span&gt;&lt;span style="color:blue;"&gt;="ToConfirmation_FromDBSetup"&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:10pt;font-family:'Courier New';color:red;"&gt;&lt;br&gt;
      Visible&lt;/span&gt;&lt;span style="font-size:10pt;font-family:'Courier New';color:blue;"&gt;="false"&lt;/span&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;span style="color:red;"&gt;&lt;br&gt;
      CommandName&lt;/span&gt;&lt;span style="color:blue;"&gt;="ToConfirmation_FromDBSetup"&lt;br&gt;
&lt;/span&gt;&lt;span style="color:red;"&gt;OnCommand&lt;/span&gt;&lt;span style="color:blue;"&gt;="InstallerNavigation"&lt;/span&gt;&lt;span style="color:red;"&gt;&lt;br&gt;
  runat&lt;/span&gt;&lt;span style="color:blue;"&gt;="server"&lt;br&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:10pt;font-family:'Courier New';color:red;"&gt;Text&lt;/span&gt;&lt;span style="font-size:10pt;font-family:'Courier New';color:blue;"&gt;="Next &amp;amp;raquo;"&lt;/span&gt;&lt;/p&gt;
    &lt;p class="MsoNormal"&gt;&lt;span style="font-size:10pt;font-family:'Courier New';color:blue;"&gt;/&amp;gt;&lt;/span&gt;&lt;/p&gt;
  &lt;/blockquote&gt;
  &lt;p class="MsoNormal"&gt;&lt;span style="font-size:10pt;font-family:'Courier New';color:blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;asp&lt;/span&gt;&lt;span style="font-size:10pt;font-family:'Courier New';color:blue;"&gt;:&lt;/span&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;View&lt;/span&gt;&lt;span style="font-size:10pt;font-family:'Courier New';color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
  &lt;p class="MsoNormal"&gt;&lt;span style="font-size:10pt;font-family:'Courier New';color:blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;asp&lt;/span&gt;&lt;span style="font-size:10pt;font-family:'Courier New';color:blue;"&gt;:&lt;/span&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;View&lt;/span&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt; &lt;span style="color:red;"&gt;ID&lt;/span&gt;&lt;span style="color:blue;"&gt;="Confirm"&lt;/span&gt; &lt;span style="color:red;"&gt;runat&lt;/span&gt;&lt;span style="color:blue;"&gt;="Server"&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
  &lt;blockquote&gt;
    &lt;p class="MsoNormal"&gt;&lt;span style="font-size:10pt;font-family:'Courier New';color:blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;asp&lt;/span&gt;&lt;span style="font-size:10pt;font-family:'Courier New';color:blue;"&gt;:&lt;/span&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;Button&lt;/span&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt; &lt;span style="color:red;"&gt;ID&lt;/span&gt;&lt;span style="color:blue;"&gt;="BackToDBSetup_FromConfirmation"&lt;/span&gt;&lt;span style="color:red;"&gt;&lt;br&gt;
      CommandName&lt;/span&gt;&lt;span style="color:blue;"&gt;="BackToDBSetup_FromConfirmation"&lt;br&gt;
  &lt;/span&gt;&lt;span style="color:red;"&gt;OnCommand&lt;/span&gt;&lt;span style="color:blue;"&gt;="InstallerNavigation"&lt;br&gt;
  &lt;/span&gt;&lt;span style="color:red;"&gt;runat&lt;/span&gt;&lt;span style="color:blue;"&gt;="server"&lt;br&gt;
  &lt;/span&gt;&lt;span style="color:red;"&gt;Text&lt;/span&gt;&lt;span style="color:blue;"&gt;="&amp;amp;laquo;
    Previous"&lt;/span&gt;&lt;br&gt;
&lt;span style="color:blue;"&gt;/&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
    &lt;p class="MsoNormal"&gt;&lt;span style="font-size:10pt;font-family:'Courier New';color:blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;asp&lt;/span&gt;&lt;span style="font-size:10pt;font-family:'Courier New';color:blue;"&gt;:&lt;/span&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;Button&lt;/span&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt; &lt;span style="color:red;"&gt;ID&lt;/span&gt;&lt;span style="color:blue;"&gt;="ToComplete_FromConfirmation"&lt;br&gt;
&lt;/span&gt;&lt;span style="color:red;"&gt;CommandName&lt;/span&gt;&lt;span style="color:blue;"&gt;="ToComplete"&lt;/span&gt;&lt;span style="color:red;"&gt;&lt;br&gt;
  OnCommand&lt;/span&gt;&lt;span style="color:blue;"&gt;="InstallerNavigation"&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;span style="color:red;"&gt;&lt;br&gt;
    runat&lt;/span&gt;&lt;span style="color:blue;"&gt;="server"&lt;br&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;span style="color:red;"&gt;Text&lt;/span&gt;&lt;span style="color:blue;"&gt;="Install"&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
    &lt;p class="MsoNormal"&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;span style="color:blue;"&gt;/&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
  &lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-size:10pt;font-family:'Courier New';color:blue;"&gt;&lt;br&gt;
  &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/&lt;/span&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;asp&lt;/span&gt;&lt;span style="font-size:10pt;font-family:'Courier New';color:blue;"&gt;:&lt;/span&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;View&lt;/span&gt;&lt;span style="font-size:10pt;font-family:'Courier New';color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;blockquote&gt;
  &lt;p class="MsoNormal"&gt;&lt;span style="font-size:10pt;font-family:'Courier New';color:blue;"&gt;	&amp;lt;&lt;/span&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;asp&lt;/span&gt;&lt;span style="font-size:10pt;font-family:'Courier New';color:blue;"&gt;:&lt;/span&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;View&lt;/span&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt; &lt;span style="color:red;"&gt;ID&lt;/span&gt;&lt;span style="color:blue;"&gt;="Complete"&lt;/span&gt; &lt;span style="color:red;"&gt;runat&lt;/span&gt;&lt;span style="color:blue;"&gt;="server"&amp;gt;&lt;br&gt;
  &lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span&gt;asp&lt;/span&gt;&lt;span style="color:blue;"&gt;:&lt;/span&gt;&lt;span&gt;View&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-size:10pt;font-family:'Courier New';color:blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;asp&lt;/span&gt;&lt;span style="font-size:10pt;font-family:'Courier New';color:blue;"&gt;:&lt;/span&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;MultiView&lt;/span&gt;&lt;span style="font-size:10pt;font-family:'Courier New';color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;br&gt;As you can see, each step is a "View" and inside each view, I added the "Back" and "Next" button. They are hooked into the MutltiView function "InstallerNavigation" via &lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;span style="color:red;"&gt;OnCommand&lt;/span&gt;&lt;span style="color:blue;"&gt;="InstallerNavigation" &lt;/span&gt;&lt;/span&gt;and each button has a specific CommandName uniquely identified by via the name in their current step. &lt;br&gt;&lt;br&gt;I used the naming convention "To...From.." and "BackTo...From..", this will help clarify any confusion when we get to the coding. &lt;br&gt;&lt;br&gt;I'm a bit tired from actually writing the article such far, so let me stop here and I will continue the installer in the next article. The plan is to actually get to the coding in the background, how we proceed to each step and possibly get to how we connect to database,&amp;nbsp; select the database we need and execute .sql scripts that we exported from sql server. &lt;br&gt;&lt;br&gt;Food for thoughts that I think you should think about before my next article&lt;br&gt;&lt;br&gt;The issue of a web installer are the following&lt;br&gt;&lt;br&gt;&lt;ul&gt;&lt;li&gt;How to exectute .sql script files exported via sql server&lt;/li&gt;&lt;li&gt;How to grant permissions so the user has execute rights to the tables/store procedurs in the .sql script file&lt;/li&gt;&lt;li&gt;Where to place the .sql script file so it's not accessible by typing directly in url. &lt;br&gt;&lt;/li&gt;&lt;li&gt;How to save the configuration settings to ASP.NET's default configuration file, namely "web.config" without rebooting the application (everytime the web.config is changed, application will be rebooted, it'll affect the installer in th mids of installation)&lt;/li&gt;&lt;li&gt;On a related note, write permission is needed to modify files, how do you detect if the user has write permission?&lt;br&gt;&lt;/li&gt;&lt;li&gt;How to disable the installer once it's completed such outside users can't access it freely.&lt;/li&gt;&lt;li&gt;Lastly, "Medium-Trust" is a requirement as a lot people are in a shared host environment, what needs to be avoided?&lt;br&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br&gt;Think about them and when I get to my next article in the series, you will see how we resolved each issue. &lt;br&gt;&lt;br&gt;Stay tuned. &lt;br&gt;&lt;br&gt;&lt;br&gt;
&lt;br&gt;&lt;img src="http://limingxu.com/aggbug.aspx?PostID=6465" width="1" height="1"&gt;</description></item><item><title>Official Jumptree Project Management V1 Is Released</title><link>http://limingxu.com/blogs/xu_web_chronicle/archive/2007/05/24/official-jumptree-project-management-v1-is-released.aspx</link><pubDate>Thu, 24 May 2007 05:24:00 GMT</pubDate><guid isPermaLink="false">e33cfc3b-0a20-4406-a9f8-726f3a931aa8:5100</guid><dc:creator>Liming</dc:creator><slash:comments>0</slash:comments><comments>http://limingxu.com/blogs/xu_web_chronicle/comments/5100.aspx</comments><wfw:commentRss>http://limingxu.com/blogs/xu_web_chronicle/commentrss.aspx?PostID=5100</wfw:commentRss><wfw:comment>http://limingxu.com/blogs/xu_web_chronicle/rsscomments.aspx?PostID=5100</wfw:comment><description>&lt;p class="MsoNormal"&gt;Today, I’m glad to finally announce the official release of &lt;a href="http://jumptree.com/"&gt;Jumptree ASP.NET 2.0 Project Management&lt;/a&gt;
software – to effectively manage projects, milestones, tasks and clients
interactions. &lt;/p&gt;

&lt;p class="MsoNormal"&gt;As some of you probably know, it has been two month since the Beta of &lt;a href="http://jumptree.com/"&gt;Jumptree Project Management&lt;/a&gt; was released.
During these two month, thanks to input of the many Beta testers, we’ve
collected bugs, made improvements, changed workflows and tightened securities. &lt;br&gt;
&lt;br&gt;
In addition, we’ve been working hard to improve the customer experiences by
spending a tremendous amount of effort in creating &lt;a href="http://www.jumptree.com/doc/jumptree-project/index.html"&gt;Jumptree documentation&lt;/a&gt;
and perfecting it. Jackson, our co-creator of the Jumptree Project has worked
days and nights on it, now the &lt;a href="http://www.jumptree.com/doc/jumptree-project/index.html"&gt;documentation is
easily accessible here&lt;/a&gt; where you can browse through all aspects of the
software and learn how to use Jumptree Project Management to effectively mange
your project. &lt;br&gt;
&lt;br&gt;
Quickly, let’s go over some sections of our documentations and let us give you
a quick glance of &lt;a href="http://jumptree.com/"&gt;Jumptree Project Managmenet&lt;/a&gt;.&lt;br&gt;
&lt;br&gt;
&lt;span style="font-size:18pt;"&gt;&lt;a href="http://www.jumptree.com/doc/jumptree-project/projects/index.html"&gt;Projects
Section&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal"&gt;&lt;o:p&gt;&lt;b&gt;&lt;br&gt;&lt;br&gt;Project Overview&lt;br&gt;&lt;/b&gt;&lt;br&gt;&lt;br&gt;&lt;img src="http://www.jumptree.com/images/site/doc/jumptree-project/projects/overview.png" height="374" width="915"&gt;&lt;/o:p&gt;&lt;/p&gt;&lt;p&gt;

&lt;span style="font-size:12pt;font-family:'Times New Roman';"&gt;&lt;img src="http://www.jumptree.com/images/site/doc/jumptree-project/projects/overview-filter.png" height="195" width="794"&gt;&lt;br&gt;
&lt;img src="http://www.jumptree.com/images/site/doc/jumptree-project/projects/overview-statistics.png" height="163" width="300"&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size:12pt;font-family:'Times New Roman';"&gt;&lt;b&gt;Create New Project&lt;br&gt;&lt;br&gt;&lt;/b&gt;&lt;br&gt;&lt;img src="http://www.jumptree.com/images/site/doc/jumptree-project/projects/new-form.png" height="331" width="777"&gt; &lt;b&gt;Indication of closed projects and project details&lt;br&gt;&lt;br&gt;&lt;/b&gt;&lt;br&gt;
&lt;/span&gt;&lt;span style="font-size:18pt;font-family:'Times New Roman';"&gt;&lt;a href="http://www.jumptree.com/doc/jumptree-project/milestones/index.html"&gt;&lt;img src="http://www.jumptree.com/images/site/doc/jumptree-project/projects/status-closed-grid.png" border="0" height="187" width="378"&gt;&lt;br&gt;&lt;img src="http://www.jumptree.com/images/site/doc/jumptree-project/projects/details-overview.png" border="0" height="541" width="777"&gt;&lt;br&gt;&lt;br&gt;Milestone
Section&lt;br&gt;&lt;/a&gt;&lt;/span&gt;&lt;span style="font-size:12pt;font-family:'Times New Roman';"&gt;&lt;br&gt;
&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;br&gt;
&lt;img src="http://www.jumptree.com/images/site/doc/jumptree-project/milestones/overview.png" border="0" height="506" width="915"&gt;&lt;br&gt;
&lt;img src="http://www.jumptree.com/images/site/doc/jumptree-project/milestones/overview-see-tasks.png" height="350" width="422"&gt;&lt;br&gt;&lt;img src="http://www.jumptree.com/images/site/doc/jumptree-project/milestones/details-overview.png" height="376" width="777"&gt;&lt;br&gt;
&lt;/span&gt;&lt;span style="font-size:18pt;font-family:'Times New Roman';"&gt;&lt;a href="http://www.jumptree.com/doc/jumptree-project/tasks/index.html"&gt;&lt;br&gt;&lt;br&gt;Task
Section&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size:18pt;font-family:'Times New Roman';"&gt;&lt;a href="http://www.jumptree.com/doc/jumptree-project/tasks/index.html"&gt;&lt;br&gt;&lt;img src="http://www.jumptree.com/images/site/doc/jumptree-project/tasks/overview.png" border="0" height="524" width="915"&gt;&lt;/a&gt;&lt;/span&gt;&lt;span style="font-size:12pt;font-family:'Times New Roman';"&gt;&lt;br&gt;
&lt;img src="http://www.jumptree.com/images/site/doc/jumptree-project/tasks/overview-filter.png" border="0" height="312" width="853"&gt;&lt;br&gt;
&lt;img src="http://www.jumptree.com/images/site/doc/jumptree-project/tasks/details-overview.png" border="0" height="304" width="777"&gt;&lt;br&gt;
There is a lot more covered in our documentation, so please take your time and
browse through it. &lt;br&gt;
&lt;br&gt;
If you find it helpful to your upcoming projects, then try out &lt;a href="http://www.jumptree.com/downloads.aspx"&gt;our 45-day trial&lt;/a&gt;! Note, we
understand the need for everyone to continue explore the software at their
own speed, such even though it’s a 45-day trial, after 45 days, you can still
continue to use it with the exceptions that we will randomly remind you to
purchase it and only 100 tasks are limited across all projects. &lt;br&gt;
&lt;br&gt;
Our community is slowly picking up, if you have any questions, please email &lt;a href="mailto:support@jumptree.com"&gt;support@jumptree.com&lt;/a&gt; or if you don’t
mind, then you can post your questions on &lt;a href="http://www.jumptree.com/forum/"&gt;Jumptree Forum&lt;/a&gt;, we constantly
monitors these two places and every questions will be answered. &lt;br&gt;
&lt;br&gt;
&lt;/span&gt;&lt;/p&gt;&lt;img src="http://limingxu.com/aggbug.aspx?PostID=5100" width="1" height="1"&gt;</description><category domain="http://limingxu.com/blogs/xu_web_chronicle/archive/tags/News/default.aspx">News</category><category domain="http://limingxu.com/blogs/xu_web_chronicle/archive/tags/Technology/default.aspx">Technology</category><category domain="http://limingxu.com/blogs/xu_web_chronicle/archive/tags/Tools/default.aspx">Tools</category><category domain="http://limingxu.com/blogs/xu_web_chronicle/archive/tags/.NET+Tools/default.aspx">.NET Tools</category><category domain="http://limingxu.com/blogs/xu_web_chronicle/archive/tags/ASP.NET+2.0/default.aspx">ASP.NET 2.0</category><category domain="http://limingxu.com/blogs/xu_web_chronicle/archive/tags/Project+Management/default.aspx">Project Management</category></item><item><title>New Download for Jumptree Open Source Forum in ASP.NET 2.0 / NHibernate</title><link>http://limingxu.com/blogs/xu_web_chronicle/archive/2007/05/06/new-download-for-jumptree-open-source-forum-in-asp-net-2-0-nhibernate.aspx</link><pubDate>Sun, 06 May 2007 05:07:00 GMT</pubDate><guid isPermaLink="false">e33cfc3b-0a20-4406-a9f8-726f3a931aa8:1471</guid><dc:creator>Liming</dc:creator><slash:comments>0</slash:comments><comments>http://limingxu.com/blogs/xu_web_chronicle/comments/1471.aspx</comments><wfw:commentRss>http://limingxu.com/blogs/xu_web_chronicle/commentrss.aspx?PostID=1471</wfw:commentRss><wfw:comment>http://limingxu.com/blogs/xu_web_chronicle/rsscomments.aspx?PostID=1471</wfw:comment><description>&lt;p class="MsoNormal"&gt;As I promised later last week, &lt;a href="http://limingxu.com/files/folders/nhibernate/entry1470.aspx"&gt;&lt;/a&gt;&lt;a href="http://limingxu.com/files/folders/nhibernate/entry1504.aspx"&gt;a new version of Jumptree
Forum in ASP.NET 2.0 / Nhibernate is released.&lt;/a&gt;&lt;br&gt;&lt;br&gt;&lt;img src="http://limingxu.com/BlogImages/JumptreeNHibernateForum.Png" height="264" width="706"&gt;&lt;br&gt;Details about the core forum is talked about in my previous 1.0 release &lt;a href="http://limingxu.com/blogs/xu_web_chronicle/archive/2007/04/10/nhibernate-tutorial-jumptree-forum-part-7-tutorial-source-code-is-now-available.aspx"&gt;post here&lt;/a&gt; and again, &lt;a href="http://www.jumptree.com/forum/"&gt;the live version&lt;/a&gt; is available on our production site. We definitly eat our own dog food. :) &lt;br&gt;
&lt;br&gt;
To review, two major features are added for your convenience. &lt;br&gt;&lt;/p&gt;



&lt;p class="MsoNormal" style="margin-left:39pt;text-indent:-0.25in;"&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-family:Symbol;"&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Symbol;"&gt;&lt;span&gt;&lt;span style="font-family:'Times New Roman';font-style:normal;font-variant:normal;font-weight:normal;font-size:7pt;line-height:normal;font-size-adjust:none;font-stretch:normal;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;Code Highlighter From &lt;a href="http://www.actiprosoftware.com/"&gt;ActiproSoftware&lt;/a&gt;&lt;br&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p class="MsoNormal" style="margin-left:39pt;text-indent:-0.25in;"&gt;
&lt;br&gt;&lt;img src="http://www.limingxu.com/BlogImages/JumptreeNhibernateForumCodeHighlighter.Png"&gt;&lt;br&gt;
Supported Languages include: BatchFile, C#, CSS, HTML, INIFile, Java, Jscript,
Javascript, Lua, Pascal, Perl, PHP, Python, SQL, VB.NET, VBScript and XML. &lt;br&gt;
&lt;br&gt;
To use it in the forum, all you have to do is enter in the BBCode like so&lt;br&gt;
&lt;br&gt;
[code language=”HTML”]&lt;br&gt;
&lt;span&gt;&amp;nbsp; &lt;/span&gt;&amp;lt;p&amp;gt; test html highlighter
&amp;lt;/p&amp;gt;&lt;br&gt;
[/code]&lt;br&gt;
&lt;br&gt;
where the value of attribute “language=” can be any of the supported languages.
&lt;br&gt;
&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Email Notification&lt;br&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p class="MsoNormal" style="margin-left:39pt;text-indent:-0.25in;"&gt;
&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-left:39pt;text-indent:-0.25in;"&gt;
&lt;br&gt;
We felt it it’s absolutely necessary to be notified whenever a new discussion
or a reply is added to the discussion, such we ripped out the code available in
&lt;a href="http://jumptree.com"&gt;Jumptree Project Management&lt;/a&gt; and applied to the forum. &lt;br&gt;
&lt;br&gt;
To use it, you have two files to customize (*Note, in the readme, I named them "ForumEmailSMTP.config" and "ForumAppSettings.config", please ignore that, I'm just too lazy to change them at this point)&lt;br&gt;
&lt;br&gt;
a) EmailSMTP.config&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-left:57pt;text-indent:15pt;"&gt;change
"from" to your system email&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-left:42pt;text-indent:30pt;"&gt;change
"host" to your smtp server (i use "gmail" by default)&lt;br&gt;
&lt;br&gt;
&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="text-indent:0.5in;"&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;b) AppSettings.config&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;



&lt;p class="MsoNormal" style="margin-left:0.5in;text-indent:0.5in;"&gt;RequireCredential
is used if your server requires username/password&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-left:21pt;"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;if
true, then please provide username/password&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-left:57pt;text-indent:15pt;"&gt;EnableSSL is
used if your smtp server requires that. &lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-left:1in;"&gt;NotifyUsers are the users you want
to notify when a new discussion is posted or reply added. The users can be
comma sepearated.&amp;nbsp;&lt;/p&gt;



&lt;p class="MsoNormal"&gt;&lt;a href="http://limingxu.com/files/folders/nhibernate/entry1504.aspx"&gt;The New V1.1 Download is available here&lt;/a&gt;. Again, if you
intend to use as it is, please have the “Forum powered by Jumptree” on the
bottom.&amp;nbsp;&lt;br&gt; &lt;/p&gt;

&lt;p class="MsoNormal"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class="MsoNormal"&gt;Enjoy! &lt;/p&gt;&lt;img src="http://limingxu.com/aggbug.aspx?PostID=1471" width="1" height="1"&gt;</description><category domain="http://limingxu.com/blogs/xu_web_chronicle/archive/tags/News/default.aspx">News</category><category domain="http://limingxu.com/blogs/xu_web_chronicle/archive/tags/C_2300_/default.aspx">C#</category><category domain="http://limingxu.com/blogs/xu_web_chronicle/archive/tags/Interesting+Code/default.aspx">Interesting Code</category><category domain="http://limingxu.com/blogs/xu_web_chronicle/archive/tags/.NET+Open+Source+Project/default.aspx">.NET Open Source Project</category><category domain="http://limingxu.com/blogs/xu_web_chronicle/archive/tags/ASP.NET+2.0/default.aspx">ASP.NET 2.0</category></item><item><title>Jumptree Project Management v1 Coming Soon</title><link>http://limingxu.com/blogs/xu_web_chronicle/archive/2007/05/01/jumptree-project-management-v1-coming-soon.aspx</link><pubDate>Tue, 01 May 2007 01:54:00 GMT</pubDate><guid isPermaLink="false">e33cfc3b-0a20-4406-a9f8-726f3a931aa8:1413</guid><dc:creator>Liming</dc:creator><slash:comments>0</slash:comments><comments>http://limingxu.com/blogs/xu_web_chronicle/comments/1413.aspx</comments><wfw:commentRss>http://limingxu.com/blogs/xu_web_chronicle/commentrss.aspx?PostID=1413</wfw:commentRss><wfw:comment>http://limingxu.com/blogs/xu_web_chronicle/rsscomments.aspx?PostID=1413</wfw:comment><description>&lt;p&gt;&lt;span style="font-size:12pt;font-family:'Times New Roman';"&gt;New update!&amp;nbsp; We've just &lt;a href="http://blog.jumptree.com/2007/jumptree-project-v1-coming-soon/"&gt;posted
this news&lt;/a&gt; on our offical blog, basically with a bit delay due to various
feedbacks that we got back from our beta testers, we are going to release our
offical v1 in about 1 weeks of time. &lt;br&gt;
&lt;br&gt;
In addition (here comes my little gossip), our web designer Jackson is
extremely detail oriented and sometimes a bit too anal to developer's liking,
we had to fix every single extra "pixel" and "space" that
if you don't look carefully with your nose literally touching the screen,&amp;nbsp;
then you probably won't notice it! Having said that, it's good for everyone's
benefits.&amp;nbsp; Jackson
is the guy who brings you the ultimate experiences and with a guy like him from
Jumptree, we are confident that we will delivery true quality software for your
every day project management. &lt;br&gt;
&lt;br&gt;
A quick synopsis of our status taken from our official blog&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; * Installer UI and workflow was corrected. In addition, read/write permission is auto-detected prior to installation and you will be notified if you failed to grant ASPNET/Network Services the proper permissions.&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; * Application Errors section now reports every possible system error.&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; * The Task ID (along with Task Title) is now displayed for related tasks in the Milestone Overview page and in the Discussion posts.&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; * Clicking the File name will allow you to download the file (before you had to click the file icon).&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; * An error message will appear if you select a Task Status of Duplicate and leave the Task ID field blank.&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; * In the discussions, Published discussions and milestones are clearly labeled with a Published Tag.&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; * In the discussions, Closed milestones are clearly labeled with a Closed Tag.&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; * Lock/Unlock fixed for Client Contacts and Users (A client contact or user is locked out of the system for 1 hours after 5 unsuccessful login attempts.)&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; * Various other GUI improvements here and there.&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; * Fixed a bunch of spelling mistakes.&lt;br&gt;&lt;/span&gt;&lt;br&gt;&lt;span style="font-size:12pt;font-family:'Times New Roman';"&gt;More can be read &lt;a href="http://blog.jumptree.com/2007/jumptree-project-v1-coming-soon/"&gt;on our blog,&lt;/a&gt; stay tuned! &lt;br&gt;&lt;/span&gt;&amp;nbsp;&lt;/p&gt;&lt;img src="http://limingxu.com/aggbug.aspx?PostID=1413" width="1" height="1"&gt;</description><category domain="http://limingxu.com/blogs/xu_web_chronicle/archive/tags/News/default.aspx">News</category><category domain="http://limingxu.com/blogs/xu_web_chronicle/archive/tags/Tools/default.aspx">Tools</category><category domain="http://limingxu.com/blogs/xu_web_chronicle/archive/tags/ASP.NET+2.0/default.aspx">ASP.NET 2.0</category><category domain="http://limingxu.com/blogs/xu_web_chronicle/archive/tags/Project+Management/default.aspx">Project Management</category></item><item><title>Jumptree Open Source Forum Application Update</title><link>http://limingxu.com/blogs/xu_web_chronicle/archive/2007/04/27/jumptree-open-source-forum-application-update.aspx</link><pubDate>Fri, 27 Apr 2007 14:19:00 GMT</pubDate><guid isPermaLink="false">e33cfc3b-0a20-4406-a9f8-726f3a931aa8:1363</guid><dc:creator>Liming</dc:creator><slash:comments>0</slash:comments><comments>http://limingxu.com/blogs/xu_web_chronicle/comments/1363.aspx</comments><wfw:commentRss>http://limingxu.com/blogs/xu_web_chronicle/commentrss.aspx?PostID=1363</wfw:commentRss><wfw:comment>http://limingxu.com/blogs/xu_web_chronicle/rsscomments.aspx?PostID=1363</wfw:comment><description>&lt;P class=MsoNormal style="MARGIN:0in 0in 0pt;"&gt;&lt;FONT size=3&gt;&lt;FONT face="Times New Roman"&gt;There will be another minor update to the Jumptree forum application coming up sometimes next week with a few new exciting features. &lt;/FONT&gt;&lt;SPAN style="FONT-FAMILY:Wingdings;mso-ascii-font-family:'Times New Roman';mso-hansi-font-family:'Times New Roman';mso-char-type:symbol;mso-symbol-font-family:Wingdings;"&gt;&lt;SPAN style="mso-char-type:symbol;mso-symbol-font-family:Wingdings;"&gt;J&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT face="Times New Roman"&gt; &lt;BR&gt;&lt;BR&gt;In the past two weeks, I have been busy trying to resolve issues that are left in the &lt;A class="" href="http://jumptree.com/"&gt;Jumptree Project Management&lt;/A&gt; while at the same time, handling multiple other developments such as customer support portal, ecommerce integration and Jumptree NHibernate Forum. &lt;BR&gt;&lt;BR&gt;After the Jumptree Nhibernate forum was deployed earlier this month, we’ve made several changes and added a few new features as well.&lt;SPAN style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;Mainly we sorted the categories by name in ascending order and in addition, we added the “code highlighter” by ActiProSoftware &lt;SPAN style="mso-spacerun:yes;"&gt;&amp;nbsp;&lt;/SPAN&gt;into the forum that supports multiple languages such as Java, C#, XML,&lt;SPAN style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/SPAN&gt;HTML and CSS among many others. Lastly, we hooked up email notifications to all new thread as well as replies to thread. &lt;BR&gt;&lt;BR&gt;For the code highlighter, this is the same code highlighter we used in our &lt;A class="" href="http://jumptree.com/"&gt;Jumptree Project Management&lt;/A&gt; software. By wrapping you code around our BBCode, for example &lt;BR&gt;&lt;BR&gt;[code language=”html”]&lt;BR&gt;&lt;SPAN style="mso-spacerun:yes;"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;BR&gt;&lt;SPAN style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&amp;lt;p&amp;gt;Here is my html code in “p” tag &amp;lt;/p&amp;gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0in 0in 0pt;"&gt;&lt;FONT size=3&gt;&lt;FONT face="Times New Roman"&gt;&lt;SPAN style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;BR&gt;[/code]&lt;BR style="mso-special-character:line-break;"&gt;&lt;BR style="mso-special-character:line-break;"&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0in 0in 0pt;"&gt;&lt;FONT size=3&gt;&lt;FONT face="Times New Roman"&gt;You will see a nicely “code highlighted” post in your discussion. An example can be &lt;A class="" href="http://www.jumptree.com/forum/details.aspx?discussionid=10071"&gt;seen here on our live forum&lt;BR&gt;&lt;/A&gt;&lt;BR&gt;For email notifications, again we ripped the email notification classes from our &lt;A class="" href="http://jumptree.com/"&gt;Jumptree project management&lt;/A&gt; software and it’s very easy to configure, it even supports gmail &lt;/FONT&gt;&lt;SPAN style="FONT-FAMILY:Wingdings;mso-ascii-font-family:'Times New Roman';mso-hansi-font-family:'Times New Roman';mso-char-type:symbol;mso-symbol-font-family:Wingdings;"&gt;&lt;SPAN style="mso-char-type:symbol;mso-symbol-font-family:Wingdings;"&gt;J&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;FONT size=3&gt;&lt;FONT face="Times New Roman"&gt; &lt;SPAN style="mso-spacerun:yes;"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;BR&gt;&lt;BR&gt;On more note, to fully qualify your “admin” needs, we are in the process of creating an mini add-on user management application based on the ASP.NET 2.0 Membership API (but it won’t be released till a later time) This app by itself can be a stand along tool that not only looks clean and fabulous, but also more user friendly than the default admin configuration tool provided by Visual Studio. I’m sure you are aware of the fact, ASP.NET 2.0 lacks the user management tool for applications deployed to a remote location, this is exactly what this mini-tool comes provides. You can use it as it is, integrate it and deploy it with your own applications. Of course, in Jumptree Forum, it will be integrated with admin category configuration &lt;/FONT&gt;&lt;SPAN style="FONT-FAMILY:Wingdings;mso-ascii-font-family:'Times New Roman';mso-hansi-font-family:'Times New Roman';mso-char-type:symbol;mso-symbol-font-family:Wingdings;"&gt;&lt;SPAN style="mso-char-type:symbol;mso-symbol-font-family:Wingdings;"&gt;J&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT face="Times New Roman"&gt; &lt;BR&gt;&lt;BR&gt;Stay tuned. &lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;img src="http://limingxu.com/aggbug.aspx?PostID=1363" width="1" height="1"&gt;</description><category domain="http://limingxu.com/blogs/xu_web_chronicle/archive/tags/News/default.aspx">News</category><category domain="http://limingxu.com/blogs/xu_web_chronicle/archive/tags/.NET+Open+Source+Project/default.aspx">.NET Open Source Project</category><category domain="http://limingxu.com/blogs/xu_web_chronicle/archive/tags/ASP.NET+2.0/default.aspx">ASP.NET 2.0</category></item><item><title>Nhibernate Tutorial, Jumptree Forum Part 6 – ASP.NET, Generics and Map Relationships</title><link>http://limingxu.com/blogs/xu_web_chronicle/archive/2007/04/10/nhibernate-tutorial-jumptree-forum-part-7-asp-net-generics-and-map-relationships.aspx</link><pubDate>Tue, 10 Apr 2007 06:57:00 GMT</pubDate><guid isPermaLink="false">e33cfc3b-0a20-4406-a9f8-726f3a931aa8:939</guid><dc:creator>Liming</dc:creator><slash:comments>1</slash:comments><comments>http://limingxu.com/blogs/xu_web_chronicle/comments/939.aspx</comments><wfw:commentRss>http://limingxu.com/blogs/xu_web_chronicle/commentrss.aspx?PostID=939</wfw:commentRss><wfw:comment>http://limingxu.com/blogs/xu_web_chronicle/rsscomments.aspx?PostID=939</wfw:comment><description>&lt;p class="MsoNormal" style="margin:0in 0in 0pt;"&gt;&lt;a href="http://limingxu.com/blogs/xu_web_chronicle/archive/2007/03/11/588.aspx"&gt;Part I - Why I choose Nhiberneate&lt;br&gt;&lt;/a&gt;&lt;a href="http://limingxu.com/blogs/xu_web_chronicle/archive/2007/03/12/593.aspx"&gt;Part II - Spring.Net, Setup Nhibernate Support&lt;/a&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="margin:0in 0in 0pt;"&gt;&lt;a href="http://limingxu.com/blogs/xu_web_chronicle/archive/2007/03/26/742.aspx"&gt;Part 3 -&amp;nbsp;Getting Ready&lt;/a&gt;&lt;br&gt;&lt;a href="http://limingxu.com/blogs/xu_web_chronicle/archive/2007/03/26/764.aspx"&gt;Part 4 - Setup and Add Category&lt;/a&gt;&lt;br&gt;&lt;a href="http://limingxu.com/blogs/xu_web_chronicle/archive/2007/03/26/778.aspx"&gt;Part 5 - Different Ways of Mapping File&lt;/a&gt;&lt;br&gt;** Open Source Jumptree Forum Based on these articles &lt;br&gt;&lt;a href="http://limingxu.com/blogs/xu_web_chronicle/archive/2007/05/06/new-download-for-jumptree-open-source-forum-in-asp-net-2-0-nhibernate.aspx"&gt;&lt;/a&gt;&lt;a href="http://limingxu.com/blogs/xu_web_chronicle/archive/2007/04/10/nhibernate-tutorial-jumptree-forum-part-7-tutorial-source-code-is-now-available.aspx"&gt;V1.0&amp;nbsp;&lt;/a&gt;&lt;br&gt;&lt;a href="http://limingxu.com/files/folders/nhibernate/entry1504.aspx"&gt;V1.1&lt;/a&gt;&lt;/p&gt;&lt;br&gt;&lt;br&gt;Okay, assuming you &lt;a href="http://limingxu.com/files/folders/938/download.aspx"&gt;downloaded the source code&lt;/a&gt; already, let’s pick up where we
last left off.&lt;span&gt;&amp;nbsp; &lt;/span&gt;In &lt;a href="http://limingxu.com/blogs/xu_web_chronicle/archive/2007/03/26/764.aspx"&gt;Part 4 of the series&lt;/a&gt;,
we talked about how to set up NHibernate and we were able to add forum
categories. Let’s now move onto the rest of the forum. &lt;br&gt;
&lt;br&gt;
First of all, let’s review the data model once again



&lt;p class="MsoNormal"&gt;&lt;img src="http://www.limingxu.com/BlogImages/ForumDiagram.png" height="470" width="753"&gt;&lt;br&gt;&lt;/p&gt;



&lt;p class="MsoNormal"&gt;It’s pretty easy to read, take a look at the “many-to-many”
relationship from “JumptreeForum_Discussions” &lt;span&gt;&amp;nbsp;&lt;/span&gt;to “JumptreeForum_Categoreis”,&lt;span&gt;&amp;nbsp; &lt;/span&gt;one thing I forgot to mention is that &lt;br&gt;
&lt;br&gt;
&lt;/p&gt;

&lt;ul style="margin-top:0in;"&gt;&lt;li class="MsoNormal"&gt;the “one-to-many”
     relationship from “JumptreeForum_Discussions” to “JumptreeForum_DiscussionCategories”
     has a referential integrity cascade upon delete &lt;/li&gt;&lt;li class="MsoNormal"&gt;the “one-to-many”
     relationship from “JumptreeForum_Categories” to &lt;span&gt;&amp;nbsp;&lt;/span&gt;“JumptreeForum_DiscussionCategories” also
     has the same thing&lt;/li&gt;&lt;/ul&gt;



&lt;p class="MsoNormal"&gt;&lt;o:p&gt;&lt;/o:p&gt;The reason is simple. If I delete a discussion, then I want
to delete all its association with categories. If I delete a category, then I
want to delete its association with all the discussions as well. &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;



&lt;p class="MsoNormal"&gt;Looking at the model, let’s see how I implemented the “Jumptree_Discussion”
table in NHibernate. &lt;br&gt;
&lt;br&gt;
&lt;/p&gt;

&lt;span style="font-size:12pt;font-family:'Times New Roman';"&gt;First create an entity class that maps each column of
the table to a property of a class. Here is my “Jumptree_Discussion.cs” class. &lt;/span&gt;&lt;p&gt;
.cf { font-family: Courier New; font-size: 10pt; color: black; background: white; border-top: windowtext 1pt solid; padding-top: 0pt; border-left: windowtext 1pt solid; padding-left: 0pt; border-right: windowtext 1pt solid; padding-right: 0pt; border-bottom: windowtext 1pt solid; padding-bottom: 0pt; }.cl { margin: 0px; }.cln { color: #2b91af; }.cb1 { color: blue; }.cb2 { color: #2b91af; }.cb3 { color: green; }&lt;/p&gt;

&lt;p class="MsoNormal"&gt;&lt;span style="font-size:10pt;font-family:'Courier New';color:blue;"&gt;using&lt;/span&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt; System;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal"&gt;&lt;span style="font-size:10pt;font-family:'Courier New';color:blue;"&gt;using&lt;/span&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;
System.Collections;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal"&gt;&lt;span style="font-size:10pt;font-family:'Courier New';color:blue;"&gt;using&lt;/span&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;
System.Collections.Generic;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal"&gt;&lt;span style="font-size:10pt;font-family:'Courier New';color:blue;"&gt;using&lt;/span&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;
System.Text;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal"&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal"&gt;&lt;span style="font-size:10pt;font-family:'Courier New';color:blue;"&gt;namespace&lt;/span&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;
Jumptree.Forum.BusinessEntities&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal"&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal"&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:blue;"&gt;public&lt;/span&gt; &lt;span style="color:blue;"&gt;partial&lt;/span&gt; &lt;span style="color:blue;"&gt;class&lt;/span&gt; &lt;span&gt;JumptreeForum_Discussions&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal"&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal"&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;