| |
|
|
| |
|
|
| |
- Desktop Applications
- Web Applications
- Web Services, SOA
- High-Performance Systems
- Troubleshooting
Blogs
Complex Desktop Applications
|
Customized grouping data grid
|
|
Architecture cannot be an afterthought - whether for a new building or
for a software application.
|
- Will your app support a web-client, a desktop client or
both? Anuj has used advanced OO patterns (such as the Builder and the Command patterns)
to isolate core business logic layers - and provide flexibility in UI Views. His
Builder pattern implementation makes it possible to use the same business layer
for both web as well as desktop UIs - a difficult feat for most large
applications.
- Custom UI Controls : Today's business
applications need to display several megabytes of data in various layouts
including Master-Detail, Parent-Child, Tabbed Views and other complex UI layout
scenarios. Anuj has worked on customizing large data displays to include:
- Advanced Data Grids with excel-like copy and paste functionality for grid data
- Advanced grouping including multi-column grouping
- Fast rendering of large quantities of data - using virtual display modes
- Nested grids - and advanced Master-Detail views.
- Industry Specific Knowledge - From energy
From energy trading to financial markets (equity trading) to financial services (credit
processing, lease loans etc.), Anuj brings to the table a wealth of domain
knowledge and can hit the ground running on most large projects.
- Some other design decisions that Anuj can assist your next application with include:
-
How will your application handle exchange of complex data?
-
Will your User Interface support complex data with all its relationships?
-
How will your application scale at each tier?
- ...
- Contact Anuj to set up an appointment today.
|
High-Performance Web Applications
- Anuj has been involved with highly scalable ASP.NET websites capable of handling large amounts of
data using advanced caching and display strategies. Anuj was involved with DELL's battery replacement initiaive
to recall defective laptop batteries from around the world.
- Migration from classic ASP to ASP.NET - Anuj was the lead architect in moving a
popular social networking website from ASP to ASP.NET
- Internationalizaton/Globalization - Anuj has worked extensively with .NET's internationalization support
to build websites that support several languages. Anuj's design allows for the
flexibility of adding new languages down the road without source code
modification.
- ASP.NET datagrids and Custom controls - Anuj has designed custom web (and desktop) controls to handle everything from basic data entry to complex display of data.
His custom controls continue to serve the needs of demanding web (and desktop
applications) even today.
- .NET SOAP and WebServices (Also see the SOA 'Area of Expertise'). Anuj has
been involved with the design and development of secure SOAP messages using both Java SOAP and .NET SOAP.
- IIS administration, configuration and troubleshooting -
Anuj has a hands-on knowledge of ASP.NET and IIS Security, Authorization and Authentication, Roles, Membership management as well as certificate management.
- Contact Anuj to set up an appointment for your
ASP.NET application today.
|
Distributed Applications, SOA and Web Services and Web Services
Building distributed applications using well-designed, loosely coupled components can provide significant competitive advantage to your company.
Some of the areas that Anuj has been involved with include:
- From energy trading to financial services,
Anuj has worked extensively on the end-to-end mapping and transport of large amounts of data using the latest EAI platforms.
- Anuj has worked on issues related to cross platform SOAP Interoperability - Java SOAP as well as
.NET SOAP
- Large file transfers: SOAP's original design
was ill-equippped to handle large file transfers. However, several workarounds
and newer extensions provide various options - including SwA, Mime and
WS-Attachments. Anuj has hands-on experience with several file transfer
technologies both .NET SOAP as well as Axis SOAP.
- WSE 2.0: Anuj has worked with the next generation of WebServices
using
WS-Security, WS-Policy and WS-Addressing to apply security and other constructs to meet the demands of complex SOA architectures.
- Integration of Java SOAP with .NET SOAP: Building
multi-platform services using both Java SOAP (both Axis and Apache) and .NET
SOAP leads to various interoperability issues. These are some of the
challenges that Anuj has
helped clients overcome.
- To learn more, visit the clients section of this website.
To set up an appointment for your SOA project,
contact Anuj .
Service Broker Based SOA architecture
|
High Performance Desktop and Web Applications, Trading Systems and Financial Markets Programming
Anuj has broad experience with high traffic web applications as well as thick
desktop client applications. His trading systems software experience includes
both financial maket systems as well as energy trading systems.
- Some vertical scalability techniques that Anuj has used involve advanced
multi-threading patterns including:
- Performance-centric analysis of use cases into synchronous and asynchronous
workflows. Using asynchronous invocation of methods (both on separate threads as well as via delegates)
where required - for improved performance.
- Object design accommodating concurrency, e.g. using ReaderWriterLocks for concurrent access to objects.
- High-performance component-oriented design - reusable components built for concurrent access.
- Implementing ISynchronizeInvoke for multiple thread access to object methods
- BackgroundWorker usage on UI forms to handle user events while performing background tasks.
- Multithreaded web services designed to handle simultaneous service
requests and thousands of consumers.
- Modification to the built-in .NET Thread pool - to overcome some of its shortcomings.
- Anuj is an expert on some of the High-Performance characteristics of trading systems - including state management, persistence, recovery, load balancing etc.
- To learn more, visit the clients section of this website.
To set up an appointment for your high-performance application,
contact Anuj .
|
Comprehensive Code Review (CoReTM) Services
| Study after study has shown that good unit test suites lead to fewer bugs as well as cleaner (refactored) software. The opposite also holds true - lack of comprehensive tests leads to software that is defect-ridden and harder to maintain. Anuj provides a comprehensive code review of your entire code base which includes: |
- Code Coverage Statistics - to determine what fraction of your code is missing good test coverage (and hence may be open to defects).
- Refactoring of larger Components, Classes and Methods - Often times, unintentionally, a class or a component grows to provide more functionality than originally intended. The same may be true of individual methods within classes. Anuj meticulously goes through each class and using proven OO techniques such as composition and inheritance, breaks up larger classes into manageable ones.
- Revalidation of business process - One of the side-effects of the CoReTM service is that re-factoring, by its very nature, involves re-visiting key business process decisions. This leads to a thorough re-validation of core business workflows. Often times, Anuj's CoReTM service, has caught major loopholes and missing pieces of functionality - as a pure side-effect of his refactoring efforts.
- Standardized components for logging, object disposal, exception handling etc, - Another thing that tends to happen on larger projects is a mish-mash of logging methods, memory cleanup and exception handling code. Anuj painstakingly re-works code to ensure that objects get disposed correctly to prevent memory leaks - he inspects all exceptions to ensure that the appropriate ones get handled. In addition, he provides a standardized logging component for the entire application.
- Documentation - As per one research, less than half of all software applications are well documented. Code documentation usually stays on the back-burner - unless each developer makes a conscientious effort to provide thorough documentation. As part of his re-factoring effort, Anuj provides complete code documentation for the classes and methods that are lacking in this regard.
How does it work? How long does it take?
Contact Anuj to schedule a CoReTM service. The initial phase (examining the code) - takes between 1 to 2 weeks. At the end of this phase, Anuj will provide a list of areas that would benefit from code modifications (including re-factoring, additional unit tests, memory cleanup etc.). He will also provide an estimate of the time required for the second phase. Although it is highly dependent on the size of the code-base, the second phase takes anywhere from 6 weeks to 12 weeks depending on the volume of code involved. Anuj also provides a comprehensive document at the end of phase 1 - should you choose to use someone else to implement phase 2.
What is the end result?
Code that has gone through the CoReTM service continues to have lower bug-incidents and proves to be easier to maintain due to:
|
- Better test coverage
- Smaller, self-contained classes - leading to maintainable classes and methods
- Standardized memory cleanup (disposal) technique, standardized logging, standardized exception handling - leading to better application performance
- Re-Validated business process - filling in missing pieces of functionality.
|
|
|
|
| |
|
|
| |
|
|
|