Check out dot42 and Xamarin 2.0 forr developing Android applications using the .NET framework. [More]
What is NDepend?
This article is part one of a two part series about one of the most practical and dynamic tools in existence for .NET development. I’m talking about NDepend http://www.NDepend.com. I was approached about writing a review for NDepend so I downloaded the application to give it a try. As with all of my reviews, let it be known that if I think a product is mediocre, then that’s what I’m going to write. All that to say that this is no exaggeration, I really feel this strongly about this tool. I’m sure by the end of this article, I will have peeked your interest too. If you are interested, please read on.
NDepend pro product suite
From NDepend.com, “NDepend is a Visual Studio tool to manage complex .NET code and achieve high Code Quality.” This tool allows you to visualize your source code in many different ways in an effort to analyze the quality of your code and how to improve it. The product comes complete with a Visual Studio add in, an independent GUI tool, and a set of power tools that are console based which makes the product suite extremely versatile. Whether you are pressed for time and need to analyze your code while in visual studio, you prefer a standalone GUI, or you are addicted to the command line, this product is made to fit your needs.
The NDpend installation process is very straight forward. The download is a zip file that contains the complete product suite. You simply pick a folder to install to and unzip the archive. If you’ve purchased the pro version, you will be provided with a license in the form of an XML file which needs to be placed in the directory that you chose to install the product.
Installing the Visual Studio 2012 add-in
Once you’ve unzipped the archive, you need to run the NDepend.Install.VisualStudioAddin.exe executable to install the Visual Studio add-in.
Running the install
The installation completed
Adding an NDepend project to your solution
When you use the Visual Studio integration, you need to create an NDepend project in the solution that you wish to analyze.
NDepend will tell you anything that wish you know about source code. This is powerful, however, it’s a point that must be covered. In order to be productive with NDepend, you must first define what information that you wish to discover about your source code and how you plan to use that information. If you don’t have this information then you will not get much use from the product. The information that it provides to you is very useful, however, you must take some time to plan out how you will use this information to benefit you and your coding efforts.
You may wish to make sure that your code maintains a consistent amount of test coverage. Perhaps you wish to make sure that all methods in your codebase stay below a certain threshold regarding the number of lines of code that they contain. NDepend is capable of telling you this and much more about your source code.
One of the coolest features that I’ve seen in the product is the Code Query Linq (CQLinqing). This allows you to query your source code using LINQ syntax to bring back anything that you wish to know about your source code. You can query an assembly, a class, even a method. The product comes with predefined CQLinq rules but also allows you to create your own rules as well as edit existing rules.
I plan to write another blog post that explains my personal experience with the product. I’ve recently joined an open source project that is a framework that handles some very advanced topics such Artificial intelligence, Machine learning, and language design. The project is called neural network designer http://bragisoft.com/ . I chose this project because the source code is vast and I believe that a large code base is a perfect target to use NDepend to get the most benefit.
I plan to use the product and test the following areas:
What information do I want to know about my code base?
When do I wish to be presented with this information?
How do I plan on using this information to improve my code?
How can I use NDepend to provide this information?
I think that if you wish to get any use out of the product, it will be very important that you answer these questions. The product is vast and diverse but it can also be a bit intimidating. With that said, I plan to use my next post to illustrate how I was able to use NDepend to define the metrics that I needed from my code, and how I used NDepend to provide those metrics to me.
Stay tuned for the next installment which will explain my experience with using NDepend to improve my development efforts and my source code.
Thanks for reading,
Android development in Visual Studio
I'm sure a lot of you have heard of the MonoDroid product by Xamarin which allows .NET developers to write android applications using your favorite .NET tools. I find this option awesome because I'm a .NET developer and because I find native android development tedious. It's not that Java is difficult, especially when compared to iOS development using objective-C (ughh). My main problem with android development in Java is once you use Visual Studio for a few years, it's really hard to use anything else.
Enter Xamarin's MonoDroid
I was really excited when MonoDroid was released. That excitement faded quickly when I learned that i couldn't deploy my applications to my Android phone for testing without a license. Instead, you are forced you use the Android emulator. I've tried many times with many configurations to use the emulator. It's simply not feasible for me. The emulator is INCREDIBLY slow, when it works. Other times I would wait for 20+ mins before giving up. I'm not the only developer to express disdain for the Android emulator. Just google Android emulator slow and you will find a lot of people have this problem.
dot42: An alternative
Let me start by saying that I ran across dot42 http://www.dot42.com/ only 10 minutes ago, so I don't claim to have experience with the product. What I can say is that like MonoDroid, they offer a free version of their product for personal (no commercial development). Unlike MonoDroid, I see no news on their site to suggest that you can't deploy your application on your phone for testing with the free version. If this is in fact true, this makes all the difference to me as a developer. (Update: I've verified that dot42 does NOT restrict deployment to your device of choice. They even allow you to publish free applications to the Android app market! Be on the look out for a follow up article dedicated 100% to dot42 very soon!)
I think MonoDroid is a great product and it is certainly a much more mature product that dot42. I will be sure to write a follow up to this article once I've tested the product.
What about you? Anyone out there want to speak out about their problems with the android emulator? Does anyone else wish that MonoDroid would allow us to test the product on our own devices? Please feel free to comment and let us know what you think!
Syncfusion Essential Studio for WinRT Beta
Syncfusion has been a major player in the 3rd party development component market for a while now. Their products include .NET development UI controls for ASP.NET, ASP.NET MVC, ASP.NET Mobile, WinForms, WPF, Silverlight, and more. The newest tool release is a suite of controls that are made for Windows 8 WinRT development. The product is called Essential Studio for WinRT and it's made up of a plethora of highly attractive, cutting edge controls that are specifically designed for WinRT and touch interfaces.
20 Highly optimized controls
Syncfusion Essential Studio for WinRT comes with 20 control that are designed with touch control and performance in mind. The controls are vast and provide everything that you need to developing cutting edge user interfaces for your Windows 8 applications such as dashboards, maps, charts, and more.
Microsoft Office document creation from within your WinRT applications
The Studio suite comes with controls that allow your application to create Microsoft documents like Word, Excel as well as Adobe PDF documents on the fly. The controls are completely independent and do not require Microsoft Office or Adobe Acrobat to be installed on the machine. This is an incredible value which will allow applications to create receipts, invoices, work orders, or any other sort of document that you'd find in a standard line of business application.
As with their other products, Syncfusion has bundled many sample applications (with source code) to help you to get up and running with the tools in no time. The samples are written in C#/VB.NET and XAML.
Creating Windows 8 Graphics with Metro Studio
Syncfusion has also offered a free product called Syncfusion Metro Studio. Metro Studio is an extremely useful application that provides a huge selection of "Metro" style art snippets that you can edit. This is a tremendous solution that helps you to add graphics to you Windows 8 applications. The best part is it's FREE!
The artwork is divided into logical groups for you to choose the art that best suites your needs.
When you select a graphic, you are presented with the option to edit the image. Here you can change the size and color. You can also preform transformations like rotate. Syncfusion Metro Studio allows you to output the edited image as standard image files as well as XAML.
As you can see, Syncfusion have provided two extremely useful tools for Windows 8 developers and not only are they first class tools, they are also free!
Check them out today!
Syncfusion Essential Studio for WinRT Beta
Syncfusion Metro Studio