Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
We don’t allow questions seeking recommendations for books, tools, software libraries, and more. You can edit the question so it can be answered with facts and citations.
Closed 5 years ago.
Improve this question
I have just recently been asked to document 10 years worth of VB6 development done by one person. It's been some time since I looked at VB6 code myself, so I'm basically wondering if anyone has any tips for how best to go about it.
Is there any good software, free or not, which would do something similar to javadoc out there for VB6, that could be helpful?
Or just if anyone have any suggestion for tools / methods on how to do this. Any tip would be greatly appreciated.
You can try VBDox, which is a free VB6 source code documentation generator.
You may find my add-in, Atomineer Pro Documentation helpful. It can generate and update JavaDoc, Qt, Doxygen and Xml-Documentation comments in source code (Visual Basic, C#, C++/CLI, C++, C, Java, unrealscript), and you have a lot of control over the format it produces.
(edit: please note that this addin only works in Visual Studio versions from 2005 onwards, so you cannot use it in VB6, only to document old VB6 code using a newer version of Visual Studio. Once documented however, it can still of course be reloaded and compiled in VB6)
(You could say it generates the "boilerplate" documentation for you, but it generates a lot more than just a basic boilerplate skeleton - it fills in as much detail as possible to minimise the amount of additional documentation you need to write)
So it doesn't create external documentation from the comments (like JavaDoc), it creates the comments themselves - so you would still need another tool to generate the external documentation. However, AtomineerUtils would save a lot of time if you have to generate new documentation comments for existing (undocumented) code, or if you already have the code commented/documented in a Javadoc style, AtomineerUtils can process the documentation comments to convert them to Doxygen or XML Documentation formats, which may help you to gain compatibility with other tools (Sandcastle, etc) that can build external documentation for you.
To generate the external documentation from source-code comments, Doxygen is a leading (and free) external-documentation generation tool that can build documentation from JavaDoc, Qt, Doxygen or Dcoumentation-XML format documentation-comments, and is well worth trying out.
I used to code in VB6 a loooong time ago, and I never encountered any decent tools that helped with documentation in the Javadoc sense.
I would approach this from the angle of what needs to be documented: is it for developers to understand the API or is it for a user to work with the application? Assuming the former, then what is the bare minimum that you can get away with such that a developer can follow what is going on? You may be able to avoid documenting every method, and just provide a general hand waving use case based approach that could be separate from the code entirely and be based on your explorations. A few good diagrams goes a long way to transferring understanding.
If it is for the user to work the application, then you're into the realms of the help compiler. You might be lucky and find one of this lot is still available: http://help-compiler.qarchive.org/
Alternatively, if it must be the equivalent of Javadocs or you don't get paid, then you may want to consider writing a tool to scan over the source code and do a large portion of the boilerplate parameter filling for you. A tool like Unix AWK can really help here.
Our VBdocman does exactly what you need. It uses javaDoc comments and it can generate several output formats.
Related
Closed. This question needs to be more focused. It is not currently accepting answers.
Want to improve this question? Update the question so it focuses on one problem only by editing this post.
Closed 8 years ago.
Improve this question
I'm a relatively new developer (two years experience, coming from an apprenticeship) and in my workplace we've only ever had one developer working on a project at a time.
We keep our projects in Microsoft Visual Source Safe and check out files as required, and checking back in when we're done.
However, I've been doing some thinking lately and I'm unsure how we'd work on the same project at the same time? Almost everything has dependencies on some core code and certain base classes. Is there anywhere I can go to read up on concurrent development, or are there any 'techniques' I should be researching?
How do team work on projects together? For background information I'm a .NET developer working mostly with VB.NET and webforms, but am moving onto C# MVC.
Edit
I think what I'm really asking here is about the techniques that should be employed as opposed to the software. I've been tinkering with Git a little and can see the benefits of the system over VSS. I was looking more for help with techniques on a project level that can be employed with concurrent development;
Should the development of two sections be completed then merged, or should it be more closely worked on together?
Are there any proven techniques or best practices when it comes to reviewing changes or discussing the next move?
Are there any books or articles I can read on how to produce a project as a team more efficiently etc?
Given you are using a Microsoft Stack, does it not make more sense to update yourself and use TFSOnline as an example. Its far better than its predecessor and everything is fully integrated into your toolset (assuming you use Visual Studio). There are loads of tools out there but everything I use is free inside a MSDN subscription and it plays nicely together. I am not saying others aren't ahead of the game but it makes more sense given what you are doing. Was very surprised to see SourceSafe stil being used.
I never used Visual Source Safe, but most chances are a different source control tool called Git (http://git-scm.com/) will make the concurrency better.
As the project will grow, you will probably have less collisions - just because there are more files to work on.
Try to push back the code more often. No more than 1/day - and hopefully sooner.
Use some kind of SCM(source code management) Wiki,
You can use some kind of program to help you, today the most popular program to this is GIT Wiki Git, but have many others. Do some research and find out what is better for you.
Closed. This question is opinion-based. It is not currently accepting answers.
Want to improve this question? Update the question so it can be answered with facts and citations by editing this post.
Closed 7 years ago.
Improve this question
Sometimes one needs to dig into someone else's code, understand it and maybe refactor/fix it. So I'm wondering what tools/practices do you use to do that? It's not about any specific language or platform, rather some advises in general.
I myself find it very useful to run the code in question under debugger (if it is possible of course), set breakpoints and step through the code.
Also I've used a few UML tools with reverse engineering features to see the big picture. Visualization works pretty well for me.
There's one tool, that I've used quite a bit: Understand. It's not a UML tool, but it has a bunch of visualizations for the code. For instance control flow diagram for a function, which is not part of UML, but sometimes it's very useful.
I've heard that sometimes people write tests for the code they want to learn, but it hasn't been working for me. Sometimes the code I want to understand is not very testable.
There are other tools, like profilers, dependency checkers, loggers etc. Does anybody use it with any success? And how?
What the first thing use start with? What's the next?
I have been in this situation before... It's not much fun. The best way I've found is to write unit-tests to cover the areas that are going to change. Even if tests already exist, this gives you experience with both the api and behavior of the code you intend to refactor. Additionally, you gain more tests to verify the replacement implementation.
Typically, I divide these kinds of requests into 2 camps:
Fix the bug, not the whole code. In this case, I'd tend to read the code and see if I can easily put in the fix without making major significant changes, e.g. adding 5 lines of code or less. This is where the changes made are like a surgical strike that does minimal impact to achieve the desired result.
Tear down the code and put up much better stuff. In this case, there isn't a good little way to do the change or there are lots of little changes that want to get bundled up into a mini-project where digesting all the code is needed and this isn't a quick minor change. Taking an ASP site and putting it into the latest .Net framework would be an example here.
Determining which kind of change something is requires a bit of practice and experience understanding what someone else may call, "One more thing if you could..." that may be a huge deal but they don't see it that way,e.g. could we add a little module that records any error and sends me an e-mail when something bad happens that may not be so easy after all the other requirements get worked out like what if the code can't send a mail message what should it do.
Do check out nWire. It is an Eclipse plugin, currently for Java & PHP, which analyzes your code and offers code exploration, visualization and search tools. The tool is about understanding the associations in your code: class hierarchies, invocations, instantiations and pretty much everything else.
I find it very useful for digging into piles of code (BTW, for me, even my own code becomes alienated after a couple of months of not touching it).
Are you looking for high-level structure, like modules, namespaces, and class design? Or are you trying to understand the internals of the classes, e.g. how specific lines of code work? Those are two different kinds of analysis tools.
Sort of platform specific, but ReSharper is great for teasing out the hidden meaning of .NET code. I love the "Find Usages Advanced" feature where you can look for sets, gets, implementations etc...
Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
We don’t allow questions seeking recommendations for books, tools, software libraries, and more. You can edit the question so it can be answered with facts and citations.
Closed 3 years ago.
Improve this question
I found a WiX Tutorial, but it's really long-winded and seems like more than I wanted. What's the best way to get started quickly?
My end goal is nothing really complicated: an installer that installs an ISAPI filter.
When you install the WIX 3.0 toolset, it comes with a manual. It is installed to C:\Program Files\Windows Installer XML v3\doc\wix.chm and is linked in the start menu.
This is not just a dry reference manual. It contains a lot of introductory material such as the "Authoring your first .wxs file" and "How To: Add a File To Your Installer".
The manual also links to the tutorial you mention and some audio-visual material in the "Getting Started Learning Wix" topic.
The wix3 manual is also available online here.
I used that same tutorial a couple years ago when I needed to learn WiX. MSI (and therefore WiX) are incredibly complex, you'll need to invest some time to get it right.
If you have Visual Studio, I highly recommend getting Votive (which, I think, comes bundled in WiX v3 now). It'll set up VS to recognize the WiX XML schema and make hand-editing XML files much easier.
That tutorial is actually probably the best that's out there right now - WiX and Windows Installer technology is a bit "baroque" and involved....
If you want to whip up just a quick'n'easy installer, maybe this will be good enough for you?
Wix# (WixSharp) - managed interface for WiX
It's like writing C# - and it gets compiled to WiX - quite nifty.
It can't do everything - but maybe for your simple install, it's good enough - or at least it could give you a skeleton to build upon.
Marc
The tutorial is probably the simplest way to learn how to author an installer using WiX, but there are samples on the wixwiki site that you may be able to adapt without needing to learn everything involved in writing an installer from nothing.
There is a basic introduction here on the CodeProject. The second part, which includes getting started with the GUI and features, is here.
I found these to be a great place to start before delving into the details in the (much more complete) tutorial you mentioned.
WiX and Windows Installer will definitely be more than you expect if you come from a Visual Studio setup project background, because it offers perhaps 20% of the functionality of Windows Installer (and WiX) and uses functions like Service Installer classes which are definitely not necessary in Windows Installer.
This is useful too - the MSI to WiX series of blogs, start here:
http://blogs.technet.com/b/alexshev/archive/2008/01/25/from-msi-to-wix-part-1.aspx
Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
This question does not appear to be about programming within the scope defined in the help center.
Closed 7 years ago.
Improve this question
recently i was introduce to the mozilla XUL runner as framework for front line GUI
this seems to be idial framework to me ( none GUI person ) based on xul and js for events
and gives me the possibility to use c++ as back end ( xpcom ) . its seams to good to be perfect .
my question is for the guys that have expireance in this frame work and can give me some points on the limitations of this frame work.
and also can i base commercial software on XULrunner binary ? some one knows about this license matter?
XUL is just part of a larger "Mozilla Application Framework". There's a lot of conceptual stuff to learn to get the most out this superb x-paltform development environment. Like the previous poster said, good documentation is hard to comb by.
I suggest you read McFarlane's book, there's an online version here ...
http://mb.eschew.org/
It gives a very thorough treatment -- so you can code feeling like you understand the platform rather than like you're accumulating hacks from the net. Another thing you can do is download well-written open-source Mozilla-based applications like Komodo Edit and Songbird, then browse around their chrome directories. You'll save yourself a lot of time by checking out XUL experts at work.
That being said, one major limitation I've come across concering comercial development is that the design of XUL requires you to write alot of your client code in JavaScript. This means that your customers (and competitors) will end up with a lot of your source-code. The obvious way around this is to code the "core" propriatory stuff code using another language and bind it to JS through XPCOM. The other method I've heard of (which I'm yet to try) is to ompile the JS into byte-code using mozilla's JSXDRAPI. Firefox itself does this internally to cache XUL/JS files. I'm yet to come across somebody who has gotten xulrunner to recognise compiled .JSC files though.
Edmond Begumisa.
I think the hard part is that you have compile binaries for every platform you want to support. That's pretty nasty limitation right there. And yes the Mozilla license is pretty liberal, it's just fine for commercial purposes, here's the license and here's an annotated guide. Here I like this overview.
XUL is great.
One downside is that it is not promoted as a desktop application development framework. So tools support is worse than Microsoft's, not everything is documented, it doesn't have components to do everything.
If you're going to do serious development with XUL, be prepared to have to learn the framework, including its implementation details. Basically, if you're using components that Firefox doesn't actively use, you will have issues you'll need to figure out on your own.
The framework being open-source and liberally licensed allows you to patch it and use a patched runtime in your application.
Closed. This question needs to be more focused. It is not currently accepting answers.
Want to improve this question? Update the question so it focuses on one problem only by editing this post.
Closed 3 years ago.
Improve this question
My old system involved using Microsoft FrontPage and a frame page. The top frame contained a (tree) list of the tasks and sub-tasks I'd need to do, while the bottom frame contained any useful project information, notes, etc. I'd invariably need to jot down. I used bookmarks in the page to mark major tasks while highlighting current tasks with bold and marking off finished ones with italic. I would use a third frame for navigating between bookmarks via. a Table of Contents of hyperlinks linking to them. It was pretty clumsy, but it worked nicely.
Obviously, I want to upgrade now. Any good ideas on how to get a new system in place that can do something similar to my old one (without the crudeness/clumsiness)? That is, a formal piece of software for that purpose?
ToDoList is pretty good. Cons: Windows-only.
We use FogBugz, and it's worked out brilliantly for us. Far better than JIRA, easy to use, friendly, powerful. Highly recommend it.
It has a built-in wiki for notes.
(Really easy to use!)
It has a bug tracking system that is
second to none.
You can even make your software
submit its error reports to FogBugz,
and it will automatically generate a
case with relevant information in it.
This feature is called Scout.
You can create releases and all file
cases, features, bugs, whatever by
release, priority, etc. the power is
all there.
And best of all, you can host it on
your own server or have them host it
for you. Nifty system.
Works on just about any OS and browser.
Unlike most web applications, it's snappy!
We are using Jira for task lists, version planning and time management. And Google sites for internal documentation and related things. In general most Wiki system will be good for the documentation and todo (e.g. Confluence).
TFS : Team Foundation System
Full source control & work item tracking all integrated with Visual Studio.
If you use Visual Studio, and work in a windows environment, I recommend this.
If you don't use Visual Studio I recommend you do ;)
You can also setup project portals etc. that display activity, reports, all that jazz.
Basecamp from 37signals is a great tool to keep track of your tasks and projects.
I use fogbugz s&s edition
I think that an Issue Tracking System may suite your needs, there are plenty alternatives from OpenSource to Commercial...
You can setup and use ASP.NET Time Tracker Starter Kit. It also allows you to extend it.