Author: Karthik Muthupalaniappan

Tiling a 2-D Polygon using C# GDI+

Tiling a Polygon

Tiling a Polygon

One of the most challenging problems I came across working on a .NET PDF Annotator and Editor application was to tile a 2-D polygon and also accurately determine the number of tiles that fill the surface of the polygon.  The tiling part was not as much of a challenge as the counting part. The tiled polygon was to be rendered on a PDF document since the application in question is a PDF Annotating and Editing tool. We looked for anything the third party .NET PDF rendering/manipulation API that was used could provide for the tile rendering but there was nothing unfortunately.
Continue reading »

Upgrading Rails Applications – Some things to keep in mind!

So we just went through this humongous (believe me!) effort of upgrading the technical platform for one of our existing Rails applications that was running Rails 2.1, Ruby 1.7 and Mongrel cluster. The goal was to upgrade to Rails 2.3, Enterprise Ruby 1.8.6 and Passenger. It all started out as well as you would think. Updating the Rails gem, Ruby version, installing/configuring Passenger and updating relevant gems was pretty quick and smooth. Some quick and dirty testing of the application did not reveal any major problems or issues. Great! You are thinking the upgrade is mostly done att this point before you move on to the tests in the application!

Tests

Tests can prove to be major hurdle in upgrading Rails applications.  In our specific case,  close to 70% of the tests were either broken or failing due to a number of reasons.  Actually, the number of broken tests was way way greater than failing tests which led us to think the changes in the Rails testing API caused most of these issues.  Some of the issues were also caused by a plugin or gem that was used to support the tests not being compatible with the new API. It took us quite a bit of effort to figure out the reasons for the issues and also find the fixes.
Continue reading »

OO Design Patterns that can make a difference

Design patterns. I think they are the one of the most intriguing areas of object oriented application design and development. There are so many out there that can puzzle you each and every time you try to take a crack at them (I can name a few of them that I still can't figure how they are to be used or implemented).  But a thing that most programmers would agree is if used wisely and appropriately, these design patterns can provide really powerful benefits that can enhance one's programming experience and also the software that is being built. There are several patterns I have used/implemented in my projects that I think are awesome. I ll touch upon how I used some of them and why every Object oriented programmer needs to master them.

Continue reading »

Topics: , ,

More on Pure MVC for C#

puremvc

Last week, Karega Scott made a nice post on how Pure MVC makes development of Windows applications using C# simple. I thought I ll piggyback on this post and share some of my thoughts regarding this popular framework. I think the framework, if understood completely and adopted intelligently, has to offer some really cool benefits like :

  • Light-weight messaging mechanism (using Notification/Observer patterns) between different parts of the application without having to create custom events/hooks all over the place.
  • Highly Decoupled Components allowing abstraction and seperation of logic.
  • The application's testability is enhanced greatly because of the reason stated above.
  • A Centralized singleton Facade component that mediates between the different components in the application.
  • The use of commands in the framework can help in building complex applications that need to perform several different UI-driven functions.

Continue reading »

Fluently NHibernate

logo

Fluent NHibernate is an extension of the widely used and very popular NHibernate framework for Microsoft .NET. It is an open source framework that sits on top of the NHibernate layer and utilises all the core NHibernate methods. This framework provides an alternative to the standard XML based mappings (.hbm xml files) of NHibernate. It lets you define the NHibernate mappings in strongly typed and concise C# code.  For those who are new to NHibernate, here is more information.

Continue reading »

.NET Web Browser Control Gotchas

How many of you folks out there have used the .NET Web browser control for Windows applications? I bet most of you, at some point, must have done some head-scratching as to why Microsoft did not make this control as powerful as it should have been. This control does offer all of the navigation functions and basic browser capabilities but there is lot more that could have been done to enchance it's utility value. After some persistent fighting with this control in our current project, here are some gotchas that I have to offer.

Continue reading »

Deploying .NET Windows applications

nsis

I m sure many of the .NET programmers who have worked on building .NET windows applications must have had a chance to play around with the MSI/Deployment Project. This is the built-in project that the framework offers to build installers for deploying and installing windows applications. I think this project provides decent capabilities for packaging and installing windows applications but definitely has some limitations.

Continue reading »

jQuery goodness with ASP .NET

http://www.eweek.com/c/a/Application-Development/Microsoft-Adopts-OpenSource-jQuery-JavaScript-Library/

This piece of news has brought about great cheer in the Web Developers community. jQuery has been fast gaining reputation in the world of web-development as a light-weight, flexible and easy-to-use Javascript library. Integration of jQuery with Microsoft's development platform should provide web developers with new capabilities and opportunities.

This is very smart move by Microsoft given the fact they have always hesitated to incorporate open-source technologies into their products. It is planning to ship jQuery with the ASP .NET MVC very soon. Integration with Visual Studio is something that is going to happen later. There are plans to enable intellisense support for jQuery in Visual Studio which would be really cool I think.

Some of the high-points of jQuery integration with ASP .NET could be :

  • JQuery provides an attractive alternative to conventional Javascript making client-side DOM and HTML manipulation much easier and quicker.
  • It could complement ASP .NET Ajax and play with it really well
  • The original jQuery libraries are going to be ported into ASP .NET without any change which would enable developers to leverage jQuery's true potential

image-source : www.webmonkey.com

I have posted a few links below that discuss more about what the MS-jQuery marriage means for the web development community and how it can make life easier for developers out there.

http://weblogs.asp.net/scottgu/archive/2008/09/28/jquery-and-microsoft.aspx

http://weblogs.asp.net/bleroy/archive/2008/09/28/jquery-now-officially-part-of-the-net-developer-s-toolbox.aspx

http://jquery.com/blog/2008/09/28/jquery-microsoft-nokia/

Topics: ,

Ruby on Rails with Windows – How I made it work

I have been developing with Ruby on Rails over the last few weeks. Coming from the ASP .NET/C#/VB world, I am a total stranger to a programming language like Ruby. Any new programming language is fun to learn! Ruby was even more exciting cause it was a new kinda language to me. Though I think Ruby is not as user-friendly as C# or Java, it is as powerful and flexible if not better. Combined with Rails, Ruby becomes a platform that facilitates quick and efficient development of database-driven web applications.

Continue reading »

Topics: , , ,

Getting Started with Silverlight

For people who are not aware what Silverlight is, Silverlight is Microsoft's cross-browser, cross-platform, and cross-device plug-in for delivering the next generation of .NET based media experiences and rich interactive applications for the Web.

Silverlight was designed to address these properties:

  • Lightweight browser plug-in—Silverlight has Windows and Macintosh modules that are designed to enhance Internet Explorer (versions 6.0 and 7.0), Firefox 2.0, and Safari browsers.
  • Native presentation runtime— Software-based browser enhancement that allows rendering of XAML-based interactive 2-D graphics, text, and media, in addition to the browser native rendering of HTML. XAML can be used inline, in a file, or in a package.
  • Interactive video and audio—Cross-platform independent media runtime that can render Windows Media content (WMV and WMA) in addition to MP3. Video and audio are handled as a media element in XAML, enabling flexibility in their presentation. Furthermore, the media support leverages the huge infrastructure and ecosystem around Windows Media, enabling cost-effective delivery of top-quality media.
  • Programming layer—In consistency with the Web architecture, Silverlight XAML is exposed using a DOM model to JavaScript. That way, AJAX programs can utilize the extended markup rendering capability using the same programming paradigms and practices (on the client and on the server).

Continue reading »

Topics: ,

Managing vs Creating Test Data

This is my first blog post at Pathfinder. I m excited to be a part of the Pathfinder team and look forward to working on a number of different diverse projects. I had a tough time trying to decide what the subject for my first post was going to be.  I finally zeroed in on "Test Data Management vs Creation".

In one of my earlier jobs at a reputed insurance company's IT organization, We came across this problem that posed a big challenge. We were building a real-time policy servicing application. The problem was finding the right test data to test the application. The QA folks were spending so many man-hours trying to find the right test data or set-up test data. "Test Data Management" was becoming a big pain and was hurting the project badly in terms of time and costs. The solution?

"Test Data creation" was proposed a viable solution to this problem. The idea was to build reusable tools that would use the application to generate test data to suit the QA organisation's needs. These tools determined what the tester's test policy needs were, used the application services to generate test policies and provided them to the tester.  It was a great idea! The application that was to be tested was SOA driven which made it easier for this solution to work. I was a part of the team that worked on developing these tools. Some of the tangible benefits that everyone saw with this approach were:

  • Life of QA became much much easier.
  • Imagine the amount of time and money the company was going to save.
  • The application was being tested repeatedly when it was used for creating the test data.
  • Test Automation became easier.

The QA organization's mantra became "Forget about managing and reusing test data, create new test data the way you want it!"

Launch: Pathfinder Newsletter

    Get a monthly update on best practices for delivering successful software.

    Subscribe via email


    Subscribe via RSS      RSS icon

Topics

Search

WordPress

Comments about this site: info@pathf.com