Black Duck's Visual Studio's smart search plugin review for Koders
Over past few years Open Source has find the path to a platform that is proprietary in nature; Microsoft .NET umbrella and now the shift in paradigm is coming along with more open source projects hosted using .NET suite of languages. Collaborative efforts from individuals and companies are increasing open source adaption across the globe and this trend not only facilitates development for thousands of individuals but also gives birth to new dimensions and richer applications.
As part of such an effort, Koders was acquired by Black Duck two years back. This news was shared as a cover story on Linux website (http://www.linux.com/archive/feature/133411) which is a proof how open source community welcomes such efforts. Black Duck now offers Visual Studio, Eclipse and Mozilla FireFox plug-ins/add-on for open source or enterprise code search across a pool of selected languages and configurable selected licenses. At the time of this writing you can download these from http://corp.koders.com/downloads/
The installation of plug-in for Visual Studio 2010 was pretty smooth and as soon as I did reboot Visual Studio the Black Duck window was appearing which I pinned with my solution repository. I made a basic search and found that it is returning every language as part of the search results so I had to specify the language of choice as following,
Since I had seen the demo for Black Duck Visual Studio 2010 plug-in (found right here: http://corp.koders.com/downloads/demo) I was interested in finding out the accuracy of smart search but I figured out that it is not also enabled by default and can be turned on as following,
Again, I think an image for relative language file will create a better quality product rather than Utilities.java in the smart search enable dialog box (highlighted in red in above picture).
Smart search feature lists matches as you complete a method signature while typing in real time but what about already completed methods? I think rather than going to BlackDuck box and searching explicitly, it will be good to have feature to find relative matches for all methods when loading an existing file in. (Just the way Visual Studio backend threads highlight code errors or prepare regions boundary).
Another important consideration is that the context of searches you set is not saved across multiple visual studio reloads. Take a look at this,
Curious in identifying what parameters were sent behind the scene; I inspected the requests using fiddler,
POST http://www.koders.com/ws/1.0/ClientServices/Default.asmx HTTP/1.1
User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; MS Web Services Client Protocol 4.0.30319.1)
Content-Type: text/xml; charset=utf-8
SOAPAction: "http://www.koders.com/ws/GetNumberOfSearchResults"
Host: www.koders.com
Content-Length: 513
Expect: 100-continue
<?xml version="1.0" encoding="utf-8"?><soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"><soap:Body><GetNumberOfSearchResults xmlns="http://www.koders.com/ws/"><key /><searchSpec><Terms>SendEmail</Terms><Language>C#</Language><License>*</License><SearchMode>Default</SearchMode><SearchTypeHint>MethodDefinition</SearchTypeHint></searchSpec></GetNumberOfSearchResults></soap:Body></soap:Envelope>
I may intend to write down my own application on top of this web service since I don’t find any authentication or authorization, not even a pattern sequence no. that validates search is made from authenticated client (plug-in itself and not by a third party). Black Duck should introduce a sophisticated authorization in the plugin to restrict tons of vague searches. It will definitely help them refine their searches.
The plug-in has potential issues while disposing on Visual Studio close event. Everytime I close Visual Studio now, I face this error,
EventType clr20r3, P1 devenv.exe, P2 10.0.30319.1, P3 4ba1fab3, P4 kodeshareaddin, P5 1.3.3974.7440, P6 4ce4ecf1, P7 af, P8 1, P9 system.objectdisposedexception, P10 NIL.
Clearly an exception on object dispose (assuming the black duck search panel dialog or the search thread object).
Overall, the idea is powerful (factilitate and reduced development effort) for end users but there are potentially many issues with black duck koder's plug-in which is only part of the cocept. The actual essence of the product lies in the serach results returned but unless the plug-in is attractive enough, black duck won't be able to make a good market out of it. I will be glad to hear your thoughts on this review.
About Me
Usman ur Rehman Ahmedis known as a software engineer in Lahore, Pakistan. He is renowned for having an abstract understanding of vast range of technological developments such as programming languages, web development, RIA's and documental writing, and is mainly specialized in developmental analysis.
Tags
- windows phone 7 (15)
- DNN (14)
- Dot Net Nuke (13)
- .NET (5)
- c# (5)
- manifest (4)
- Application (3)
- MySql (3)
- Provider (3)
- Sql (3)
- View all 237 tags »
- Sql Server (3)
- Stored Procedure (3)
- visual sutdio (3)
- API (2)
- Data (2)
- Mango (2)
- Module (2)
- Permission (2)
- PhoneTextBlock (2)
- User Control (2)
- Windows (2)
- config (2)
- console (2)
- developer (2)
- dot net (2)
- emulator (2)
- enumeration (2)
- expression blend (2)
- extension (2)
- loop (2)
- network (2)
- phone 7 (2)
- tools (2)
- transparent (2)
- .ascx (1)
- 3g (1)
- 5.6.2 (1)
- 7.1 (1)
- 7.5 (1)
- AJAX (1)
- Activity (1)
- App.xaml (1)
- AppManifest (1)
- ApplicationIcon (1)
- Arabic (1)
- Background.png (1)
- BuildAction (1)
- Connector (1)
- Control Panel (1)
- Core Version (1)
- Data-tier (1)
- DataBound (1)
- Database (1)
- Dependency (1)
- DeviceNetworkInterface (1)
- Directory (1)
- Dynamic (1)
- EVDO (1)
- Encryption (1)
- File (1)
- FileSystemWatcher (1)
- Filter (1)
- Foreign Key (1)
- Function (1)
- GUID (1)
- GetSiteLog (1)
- Hash (1)
- Host Settings (1)
- IIS6 (1)
- IIS7 (1)
- Integrated Mode (1)
- Internet Explorer (1)
- IsolatedStorage (1)
- Java (1)
- Koder (1)
- Linq (1)
- Lists (1)
- Log (1)
- Marketplace (1)
- Membership (1)
- Microsoft (1)
- NavigationCacheMode (1)
- NavigationContext (1)
- NavigationService (1)
- Notify (1)
- OnClientNodeChecked (1)
- PTCL (1)
- Panaroma (1)
- Password (1)
- Properties (1)
- Query String (1)
- ResXResourceReader (1)
- ResolveHostNameAsync (1)
- Right to Left (1)
- SDK (1)
- SEO (1)
- SendKeys (1)
- SendWait (1)
- SharpPCap (1)
- Stream (1)


