Visio has been supporting UML diagrams for quite some time now. Microsoft has now added UML support in Visual Studio 2010.
Will these two tools interoperate? Further how does one go about deciding which tool to use for what diagrams (assuming one already has both tools)?
The UML tools in VS 2010 integrate with Team Foundation Server so you can link model elements with work items. In addition, you can create sequence diagrams, layer diagrams, and dependency graphs from code, perform architectural validation in your builds, generate code from UML class diagrams by creating custom templates, and other tasks to help you better understand and visualize your code. You'll also be able to extend and customize some of these tools.
The team will also ship additional functionality as feature packs after Visual Studio 2010 is released. For more information about what's in the first feature pack, see Cameron Skinner's blog.
The current release of VS 2010 does not support integration with Visio, but the team is working on import/export capabilities, such as XMI import.
For more information, see the documentation for these tools by starting here: Modeling the Application or my profile for more links.
Related
I'm working for a company which maintain several Desktop application projects written in C++. All of these apps have complex GUI interfaces. What I mean by "complex" is, among others, interfaces with many components, deep component hierarchy, usage of frames, third party and/or custom component packages which support features like transparency and animation.
Until now we always used the Embarcadero RAD Studio suite to write and maintain our apps. However the many recurring bugs of each new version has tired my superiors, and now they are considering the possibility to migrate to Visual Studio.
I think that migrate the application core functions written in c++ will not be a real issue.
However for the GUI it's an other story. I had a previous experience with complex interfaces under the Visual Studio 2003 compiler, and I remember that this was a painful work to create and maintain them. There was no real designer, components were limited, and a huge part of the job was to be done manually. From that I took a look on the designing tools provided with Visual Studio 2017, and my first impression is that not much has changed since. The designer for c++ projects is still so rudimentary, especially in comparison to the RAD Studio VCL, with its well-supplied component library. The C# API is closer than what I need, but I cannot envisage to rewrite all my code in C# as a serious option.
I tried to search tutorials about the good practices to apply in a such situation, but until now I found no helpful info.
My questions are:
Can I recover my current GUI interface, at least a part of it, while I migrate to Visual Studio, or do I have to plan to rewrite everything from scratch?
Does Visual Studio provide a mechanism similar to VCL for composing GUI interfaces, installing third parties packages and writing custom components? And if yes, where can I find relevant info about that?
Is a such port possible without a high dose of headache and tears? Where can I found relevant info about a such process?
I am also currently working on a product which is developed using Embarcadero RAD Studio and some 3rd party UI controls. Development was done many years back, so its UI is quite older style. I tried to migrate it in Visual Studio, by developing application logic in C++ and UI in C#(WPF). But it is as good as writing new application, cost is more. So we discontinued that exercise. However what I learned during this is –
Migrating VCL application from RAD Studio to Visual Studio is like writing new application. There is no one-to-one mapping(data types, stuctures, UI controls etc), you have start from scratch. Also there are no tools available which can help this migration.
Some data types, data structures, UI controls are easily available in RAD Studio, which are not available in Visual C++ (MFC), and vice versa. So you have to review every code line while migrating the application logic.
There are no 3rd party UI controls available for Visual C++(MFC) which can make your life easy. For RAD Studio you have LMD tools, businessSkinForms etc.
After working on RAD Studio over 5+ years, Developing UI is quite easy in RAD Studio (UI in C++). However in Visual Studio you can develop your UI in C#(WPF) which will be rich and can communicate with application logic written in C++.
As you said, you have several desktop applications developed with RAD Studio, while migrating to Visual Studio start with smaller and standalone application. So you will get some confidence during migration of this application and then you can put such migrated small application in production one by one without impact.
~Nilesh
I'd like to use Code Map, which can be used in Visual Studio 2012, also in Visual Studio 2010.
If you don't know what Code Map is, this is how it looks like:
here's a tutorial from Microsoft: http://msdn.microsoft.com/en-us/library/vstudio/dn194476.aspx
Is it somehow possible to use this in VS2010 or is there any similiar tools, which displays the different method calls? By this I want to display a method Method1() which calls another method called Method2(). This should be displayed like in the CodeMap (not by using hierarchy call, I want to see it with a UI). It should be free or an extension for VS2010.
I'm not aware of a free version that offers something that the Visual Studio 2012 Ultimate Edition offers, but you have a few alternatives:
NDepend features a Call Graph option
You can open the VS2010 solution in VS2012
Debugger Canvas offers a similar feature while debugging
Architecture Explorer Dependency Graphs and Sequence Diagrams
I tried to search but if this is a duplicate it is hidden by some noise. Alternate title to the question:
What skills to look for when needing integration with the Visual Studio IDE?
Visual Studio 2008 is written in both native and managed code, though the bulk is written in C++. There are several pieces of Visual Studio that have always been written in managed code (e.g. the property browser, the WinForms Designer). And of course, Visual Studio 2008 is stitched together with COM.
In Visual Studio 2010, there is an effort to move more of the IDE to managed code. The text editor and the shell (i.e., menus, toolbars, document and tool window frames, etc.) are written in C#. In addition, pieces of the C# and VB IDEs are being written in C# and VB respectively. The new language, F#, is written completely in managed code -- the compiler, the language service, the project system, etc. -- are all written in F#.
You can use C#, VB or C++ to integrate with Visual Studio 2008. However, given that Visual Studio is built on COM, a good understanding of COM/ATL will be helpful. In addition, if you choose to use a managed language, a knownledge of COM interop and mixed-mode debugging will be extremely helpful. Note that there are a few levels of VS integration:
Macros -- the simplest way to run custom code in the IDE.
Add-in -- A simple but powerful way to build custom functionality into the IDE. With an add-in, you can create custom commands, listen to events, manipulate text in the editor, etc. However, you cannot add, say, a new language or editor to the IDE with an add-in. For many purposes, an add-in works fine.
Package -- this is the same level of integration as Microsoft's features use. With a package, you can create pretty much anything in the Visual Studio IDE, including adding new languages.
You should note that these become progressively more complex to author and deploy.
In Visual Studio 2010, a new form of extensibility is being introduced in several areas of the IDE, but primarily for extending the new WPF text editor. Going forward, integration with Visual Studio will require MEF (Managed Extensibility Framework) components rather than COM. So, in VS 2010, extending the text editor will simply require authoring a MEF component in your favorite managed language.
The podcast Herding Code episode #48 features an interview with Dustin Campbell, a program manager on the Visual Studio Managed Languages Group.
In that interview he talks for several minutes about this exact issue and gets into details about why the changes in 2010 are breaking compat with 2008 and how the future looks.
If this is strictly a curiousity question the other answers are correct. But if you want to dig a little deeper, listening to the podcast would be well worth your time.
At least the following languages are used inside of Visual Studio 2008
C++
C#
VB.Net
C
C++/CLI
C++ with managed extensions
Probably a few others that I forgot about.
A mix. The core is C++/COM stuff, but a lot of the newer stuff is managed code (C# etc). Due to the core being C++/COM (with a pile of code 'borrowed' from MS Office), VS integration is a funny experience.
If anyone knows how much of Visual Studio is turning into managed code?
I read in some sites that most of the Visual Studio 2010 is managed, compared to older versions where it was mostly native.
Is MS finally showing some premise for writing their first line of business apps with C# and .NET? (Thus proving that .NET is more than capable for doing large scale performant applications)
Actually in 2010 a lot of it is managed.
As mentioned above, the editor is fully managed.
The new shell (UI, toolbars, documents, menus, some toolwindows) is managed.
A good chunk of the language services (C#, VB) is managed.
All new C# and VB IDE features are managed (Call Hierarchy, Highlight References, Navigate To, Generate - From Usage).
Most (if not all) of F# is managed.
The build system (MSBuild) is managed.
A big chunk of debugger is managed (toolwindows, exception assistant, data tips, etc).
Most of Team System features (team test, team data, etc) is managed.
The entire TFS (Team Foundation Server - source control, bug tracking, builds, documents, etc) - is all managed.
ASP.NET and tools is managed.
Windows Forms designer is managed.
WPF and Silverlight designers are managed.
Various designers (such as resource) are managed.
The XML editor and XSD features are all managed.
IntelliTrace (back-in-time debugger) is managed.
Parallel Tools (parallel extensions) are managed.
A lot of other functionality which I can't now remember is surely managed.
And last, but not least, the About Box is now managed!
So I guess the question should be what's still native ;)
The code editor is now based on WPF in VS 2010. That alone gives us the ability to easily create new plugins in a way not possible under the old COM model.
For me the most interesting part is the new WPF-based editor. But it buggy and a bit slow even in Beta2. But If Microsoft sort out this performance problems i'll be happy. Because from VS2010 we can have strong confidence in .NET (since microsoft as the creator have confidence in .NET)
Can Visual Studio 2005 Pro generate UML style class diagrams?
You can click on the magnifier icon in Solution Explorer window. Then the diagram will be generated.
2005 does not have a UML modeler. The class designer mentioned above will allow you to model and code gen your classes but it is not a UML tool per-say. If you're not concerned with code gen from the model then I would suggest to just use Viso. If you do want to generate code from a true UML model then you may want to consider something like Enterprise Architect.
2010 Team System how-ever is supposed to have full UML modeling and code generate built in. Only one more year to wait :-P
Yes
Some details from that page:
Visual Studio 2005 Class Designer
Visual Studio .NET 2003
Applies to: Visual Studio® 2005
Summary:
The Visual Studio Class Designer lets you visualize the structure of classes and their relationships, create new classes using a visual design environment, and easily refactor classes. This whitepaper walks you through some of these tasks. (7 printed pages)
Introduction
The Visual Studio Class Designer is a fully-functional, visual design environment for the Common Language Runtime. The Visual Studio Class Designer lets you visualize the structure of classes and other types, and through these visual representations edit their source code. Changes made to the class diagram are immediately reflected in code, and changes made to the code immediately affect the appearance of the designer. This synchronous relationship between designer and code makes it easy to create and configure complex CLR types visually.
The Class Designer contains features specifically designed to help you refactor your code as well as allow you to easily rename identifiers and override methods. You can automatically generate classes and structures, and implement interfaces by automatically generating stubs.
Finally, Class Designer also serves as a communication tool by letting you easily communicate areas of your code base to colleagues. Class diagrams can be printed to hard copy or saved as images for display in HTML pages or PowerPoint presentations.
Note:
This document was developed prior to the product's release to manufacturing, and as such, you may find inconsistencies with the details included here and those found in the shipping product. The information is based on the product at the time this document was created and should be used for planning purposes only. Information is subject to change at any time without prior notice...