Archive for the ‘united kingdom’ Category

iPhone app – news reader

Tuesday, June 8th, 2010

iPhone news reader application

We have recently developed an iPhone application for one of our web portal clients based out of United Kingdom. The application talks to the custom news reader via a web service (LAMP stack) to display the recent updates in a pictorial grid based view. On clicking a picture the iPhone application retrieves the associated news article. It also allows the user to view the news based on categories.

Challenges – work around and issues solved

Slow loading of images

The application loads the latest news in pictorial grid format. When we used synchronous loading the launch of application was really slow. So, the only possible way to load images without hampering the application loading time was asynchronous loading. Even when the application was launched the user felt that it was still being launched as images were still being loaded. Therefore, the user couldn`t interact with the application.

So we tried creating a new thread (apple recommends avoiding threads) dedicated for image loading. But putting a thread into a different auto release pool, caused unexpected crashes. Initialization of connection and loading images took more time than expected. Our aim was to load images as fast as possible and reduce inconsistency and yet retain the features provided by application. The solution was to remove the imageview and use a webview (used to load web pages) of the size of imageview and programmatically inject an html page with just the corresponding image inside it. 

Dynamically loading images in Grid format on scrolling

We wanted dynamic loading of images enabled. The idea was that images were loaded whenever the user scrolled down for more images. We needed to know when the user scrolls down whether we need to download the images. This is because the user could have earlier scrolled down and the application would have already fetched those images.

A way to implement it was to parse the XML file for the next nine images when user scrolls down for more images (if not already downloaded). We then check whether the scrolling is going beyond a certain threshold (which multiples as the number of images being displayed increases). Then we increase contentsize of scrollview and insert images into it in grid format. 

Translucent tree structured Menu

Since there was no translucent tree structure menu for the application we developed one. The problem we faced here was that when views were expanded selection of sub menus weren't happening. Later it was found out that even though the view size was increased its superviews size wasn't getting increased. So the events on the view weren't getting caught. So it is a must that to catch the event of a view it should be perfectly contained inside its superview. 

Checking network connection

A network based application it is supposed to give the end user network status details. So we implemented a network status checking class using SCNetworkReachabilityRef. It checks Wi-Fi and Internet connection, but can't guarantee whether the server is available. It just checks whether request was being sent out of the device. So we had to implement another function to confirm that the server is up using NSURLConnection. This enabled us to setup a custom timeout.  

Best practices for iPhone development

We have setup continuous integration using HUDSON. This is to prevent integration errors and to have a build version is ready whenever integration is done to the application. Each time a build is done in HUDSON a static code analysis using scan build is done over the source code. Used performance tool to monitor memory leaks and ensured that application had low memory leaks.

Also read Android and iPhone development

    Microsoft dotnet Technologies

    Wednesday, April 22nd, 2009

    T4 code generation approach for faster project deliveries.

    Over the last 10 years, we have built considerable expertise in ASP.NET web application development using ASP.NET 2.0/3.5, AJAX, payment gateway integration using Worldpay, paypal etc to build complex intranets and ecommerce applications for web development.

    Third party components, controls and tools like ABCpdf.net, Aurigma Mass Image uploader are used commonly by our aspnet web development team. We also have expertise in tools like Silverlight and Sharepoint Server 2007

    • Data Access Layer using custom objects or typed data sets based on the project requirements.
    • Middle tier abstract for business layer
    • Provider Independent Data Access Layer using ADONET provider pattern.
    • Custom controls by inheriting existing controls or creating compound controls and components
    • ASPNET 2.0 Security, Membership, and Role Management – Implementation
    • ASPNET page level and data level caching to boost application performance
    • Domain objects serialized into XML and persisted in database.
    • Image and Graphics programming. in C#
    • ASPNET themes for skinning websites
    • Microsoft excel manipulation – Read and Writing excel files
    • Custom windows services using C# managed code
    • Active directory accounts authentication system for ASPNET intranet web application
    • Communication using MSMQ

    ASPNET Ajax:

    • ASPNET Ajax Control Tool Kit
    • ASPNET Ajax UI Effects – UI manipulations like Drag n drop, sorting, reordering, resizing and pagination.
    • ASPNET Ajax Custom Control Extenders – Developing custom client components using AJAX framework.
    • Script globalization and localization using AJAX framework.
    • Web services and page methods using JavaScript and ASPNET AJAX.
    • ASPNET Page method – To implement popular JavaScript frameworks and scripting libraries like JQuery.
    • Prototype and YahooUI.

    SQL Server 2000/2005/2008:

    • Database design.
    • Normalization.
    • Query Optimization.
    • Stored Procedures.
    • User defined functions.
    • Crosstab queries.
    • Site Search implementation using Full Text Catalog and Indexing.

    Payment Integration:

    • PROTX
    • WorldPay
    • Paypal
    • Authorize.NET
    • Google Checkout
    • HSBC API / CPI

    Third Party Components, Controls and Tools:

    • ABCpdf.net.
    • netCharting.
    • Aurigma Mass Image Uploader.
    • PDFBox – .NET Version.
    • iText.NET.

    Other Frameworks and Script Libraries:

    • Jquery
    • Lightwindow
    • Scriptaculous
    • Prototype
    • Yahoo UI
    • Google Map Geo coding based on UK Post Codes
    • Open ID Integration
    • Social Bookmarking
    • Open Source CMS Integration – Umbraco
    • ELMAH: Error Logging Modules and Handlers – To log, handle and mail runtime errors.

    ASPNET 3.5:

    • URL Rewriting and routing
    • ASPNET Dynamic data using scaffolding framework (Full CRUD operations supported)
    • History Control, Drag overlay extender, Media Control, XAML and Web Part manager,
    • LINQ
    • Powerful URL mapping component that enables to build applications with clean URLs.
    • REST-friendly naming patterns.
    • Silverlight – application using WCF service

     

    Our Microsoft aspnet web application team practices continous integration and agile scum methodologies to build enterprise web applications for our associates spread across London, New York, Washington and Seattle.

    Read about our Microsoft dotnet case studies

    To have a no obligation quote please click following link Contact Us.

      Sitemap

      Thursday, February 19th, 2009

        LINQ

        Tuesday, February 10th, 2009
        • LINQ is Language Integrated Query
        • Uniform programming model for any kind of data
        • Just a tool for embedding SQL queries into code.
        • Just another Data abstraction layer.
        All the above facts are correct and each focus on a single aspect. LINQ can do a lot more than what is being stated above.

        LINQ is a methodology that simplifies and unifies the implementation of any kind of data access. LINQ does not force you to use a specific architecture; it facilitates the implementation of several existing architectures for accessing data. As with every tool, it can be used in both good and bad ways.

        What is LINQ?

        LINQ is a programming model that introduces queries as a first-class concept into any Microsoft .NET language. However, complete support for LINQ requires some extensions in the language used. These extensions boost productivity, thereby providing a shorter, meaningful, and expressive syntax to manipulate data.

        For ex:

        var query = from c in Customers
        where c.Country == "United Kingdom"
        select c.CompanyName;

        The above written query is a simple LINQ query that fetches all Customers whose country is United Kingdom.

        As you will see, the SQL-like syntax used in LINQ is called a query expression. Languages that implement embedded SQL define only a simplified syntax to put SQL statements into a different language, but these statements are not integrated into the language’s native syntax and type system. For example, you cannot call a function written using the host language in the middle of an SQL statement, although this is possible in LINQ. Moreover, LINQ is not limited to querying databases, as embedded SQL is.

        How LINQ Works:

        Let see how a LINQ Query works

        Customer[] Customers = GetCustomers();

        var query = from c in Customers

        where c.Country == "United States"

        select c;

        the compiler generates this code:

        Customer[] Customers = GetCustomers();

        IEnumerable query =

        Customers

        .Where( c => c.Country == "United States" );

        As you can see, the code apparently calls instance members on the object returned from the previous call. You will see that this apparent behavior is regulated by the extension methods feature of the host language (C# in this case). The implementation of the Where, OrderBy, and Select methods—called by the sample query—depends on the type of Customers and on namespaces specified in previous using statements. Extension methods are a fundamental syntax feature that is used by LINQ to operate with different data domains using the same syntax.

        Extension Methods

        Extension methods enable you to "add" methods to existing types without creating a new derived type, recompiling, or otherwise modifying the original type. Extension methods are a special kind of static method, but they are called as if they were instance methods on the extended type. For client code written in C# and Visual Basic, there is no apparent difference between calling an extension method and the methods that are actually defined in a type.

        Relational Model vs. Hierarchical/Graph Model:

        At first sight, LINQ might appear to be just another SQL dialect. This similarity has its roots in the way a LINQ query can describe a relationship between entities such as an SQL join:

        var query =

        from c in Customers

        join o in Orders

        on c.CustomerID equals o.CustomerID

        select new { c.CustomerID, c.CompanyName, o.OrderID };

        This is similar to the regular way of querying data in a relational model. However, LINQ is not limited to a single data domain like the relational model is. In a hierarchical model, suppose that each customer has its own set of orders, and each order has its own list of products. In LINQ, we can get the list of products ordered by each customer in this way:

        var query =
        from c in Customers
        from o in c.Orders
        select new { c.Name, o.Quantity, o.Product.ProductName };

        The previous query contains no joins. The relationship between Customers and Orders is expressed by the second from clause, which uses c.Orders to say “get all Orders of the c Customer.” The relationship between Orders and Products is expressed by the Product member of the Order instance. The result projects the product name for each order row using o.Product.ProductName. Hierarchical relationships are expressed in type definitions through references to other objects.

        LINQ Flavors:

        LINQ is a technology that covers many data domains. Some of these domains are included in those “LINQ Flavors” that Microsoft provides as part of the .NET 3.5 Framework, as shown in the above picture. Each of these implementations is defined through a set of extension methods that implement the operators needed by LINQ to run over a particular data domain. The access to these features is controlled by the imported namespaces.

        LINQ to Objects:

        LINQ to Objects has the goal of manipulating collections of objects, which can be related to each other to form a hierarchy or a graph. From a certain point of view, LINQ to Objects is the default implementation used by a LINQ query. LINQ to Objects is enabled including the System.Linq namespace.

        LINQ to ADO.NET

        LINQ to ADO.NET includes different LINQ implementations that share the need to manipulate relational data. It includes other technologies that are specific to each particular persistence layer:

        LINQ to SQL Handles the mapping between custom types in C# and the physical table schema.

        LINQ to Entities Is in many ways similar to LINQ to SQL. However, instead of using the physical database as a persistence layer, it uses a conceptual Entity Data Model. The result is an abstraction layer that is independent from the physical data layer.

        LINQ to DataSet Makes it possible to query a DataSet using LINQ.

        LINQ to XML

        LINQ to XML offers a slightly different syntax that operates on XML data, allowing query and data manipulation. A particular type of support for LINQ to XML is offered by Visual Basic 9.0, which includes XML literals in the language. This enhanced support simplifies the code necessary to manipulate XML data. In fact, you can write such a query in Visual Basic 9.0

        Summary

        We have walked through the LINQ introduction, language enhancements to the LINQ flavors. .NET Language-Integrated Que ry adds query capabilities to the CLR and the languages that target it. The query facility builds on lambda expressions and expression trees to allow predicates, projections, and key extraction expressions to be used as opaque executable code or as transparent in-memory data suitable for downstream processing or translation. The standard query operators defined by the LINQ project work over any IEnumerable-based information source, and are integrated with ADO.NET (LINQ to SQL) and System.Xml (LINQ to XML) to allow relational and XML data to gain the benefits of language-integrated query.

        References:

        Introducing Microsoft LINQ by Paolo Pialorsi and Marco Russo

          Android and iPhone tablet browsers

          Tuesday, December 16th, 2008
          Quality is free but no one is ever going to know it unless there is some agreed system of measurement. A report by Creative Good showed that 39 per cent of test shoppers failed in their buying attempts because sites were too difficult to navigate. Additionally, 56 per cent of search attempts failed.

          Portal development is only half the work done. You need professional web site testers who can unearth hidden bugs and enforce webs standards that would otherwise cost your company thousands of pounds in maintaining and fixing these costly errors. In 2004, the UK's Department of Inland Revenue experienced software errors that resulted in a $3.45 billion tax-credit over payment. 

          Here is a recent report on the horrors of coding errors – surprisingly from a mutual fund company

          It seems to be happening all over the world – but who or what is to blame? All web developers understand the need to test their own scripts, but few take the time or make it a priority to test early in the web application development cycle. The result is a vicious cycle of few tests, poor-quality code and an increasing amount of debugging work. This is often due to insufficient resources, lack of technical know how, inadequate planning, scope creep and poor design.

          Our experienced team of web and application testers could help you save thousands of dollars through our manual and automated testing procedures for ERP applications using TestComplete and selenium.

          We do quality assurance testing services for web portals, extranets and intranets; they include tests for cross browsers, website functionality, performance, security and web standards ; work closely with designers and developers to bring about drastic improvement in code quality and predictability. Our quality assurance projects include big names in United Kingdom such as O2, NHS, Honda, Esprit, Dell and Cadbury.

          Whether you are based at London or New York,  – our web standards testing, application testing and web portal application development and testing services are available to you at a short notice. We also provide long term independent testing services for web development companies who build portals and social networks to bring about tangible benefits in testing time and shorter version release cycles

          What we provide

          #Standard operating checklist with severity of errors
          • Critical Error
          • Lack of Functionality / Logical Error
          • Not Living up to Specification
          • Spelling or Grammar Error
          • Design Problem
          # Web security
          • SQL injection
          • Bot login prevention
          • JavaScript loopholes
          • Password protection
          • Document privacy
          • Reader privacy
          • IP restrictions
          • Credit card encryption
          # HTML web standards
          • W3C standards
          • Web accessibility
          • Section 508 compliance
          • AAA compliance
          • XHTML compliance
          # Cross browser compatibility testing
          • Internet Explorer 6
          • Internet Explorer 7
          • IE 8
          • Firefox 1.5 browser
          • Safari browser for Mac and Windows XP
          • IE 5.2 for Macintosh
          • Netscape browser 7.x
          • Opera 8.x
          • Android and iPhone tablet browsers
          # Coding and performance
          • Portal development standards
          • Web services testing
          • Web load performance testing
          • Automated web testing
          • Web site optimization
          • Website coder matrices
          # Requirements
          • Functional specification of the project
          • Client / Admin login access on staging server
          # Engagement models
          • Pay per bug
          • Fixed hour testing
          • Agile testing for large projects

          Write to us to know about skill sets and the services that we can provide to you. 

            SWOT analysis for portal

            Thursday, December 11th, 2008

            Recently we undertook a consulting project for a client of ours based out of United Kingdom which involved detailed research on competitive information. The portal has hits from 102 countries and is considered to be the leader in its category. We undertook following set activities for the client.

            • Analysis of the business model followed
            • Content aggregation
            • Search engine strategy
            • Ways to improve customer loyalty
            • Role of blogs on traffic generation
            • Tips on increasing repeat purchases
            • Buyer demographics
            • Competitor analysis
            • Sustainable competitive edge
            • Future web trends and recommendations
            • Web 2.0 strategy
            • Social media optimization

            This was as an add-on to the web development services that we offered. Results of the analysis part were used as a framework for subsequent web development. Apart from marketing and function aspect of business we are also here to help you out in technology selection, choice of databases and other hardware requirements suited for your business need. Our team is always ready to work hand in hand with your team, giving them support in any aspect whenever they need it.

            To know more about our Internet Consultancy Services read

              Database of Individual Patient Experiences

              Sunday, July 20th, 2008

              uniDmex – Rebuilding of existing site into three individual sites;

              The main goal is to collect, upload and show patient interviews about their illnesses and experience.

              Uploaded interviews videos are stored in Flash Media Server for streaming and all interviews are displayed categorized by disease group, condition and symptoms.

              Data importing involved conversion of over 15,000 windows media video files to flash format and importing of existing data from old to new database using complex sql queries and cursors.

              Technologies:

              ASP.NET 2 C#, SQL Server 2005, ASP.NET AJAX, Flash CS3, Flash Media Server
              and jquery.

              Technology features:

              • Object Oriented Programming with layered architecture – for
              • extensibility and easy maintenance.
              • AJAX based CMS and Front end – Easy and comfortable user experience,
              • less page post backs.
              • Front end navigations and styles are manageable through CMS.
              • Dynamic creation of CSS using template and Regular expression for each
              • disease group.
              • Video streaming using Flash Media Server
              • URL Rewriting – for readable urls and search engine optimization

                Field Intelligence System Host

                Sunday, July 20th, 2008

                LG UK

                The purpose of the project is to provide a portal for LG staff to manage the field activity and for retailers and staff to interact with LG by accessing a range of services and managing their own data profiles.

                The system will be designed to provide functionality to the following users:

                • LG Trainers/ LG Staff
                • Stores/Customers
                • LG Administrators/LG Staff

                We have the following managing sections in the extranet

                E-Learning module :

                • Manage E-Learning Courses, Training Resources and Questionnaire
                • Training resources
                • Retail Users
                • Staff Users
                • Training Areas
                • Categorize Training Areas with Post codes
                • Store Accounts : Stores comes under an Account
                • Trainer Activities Management
                • Reports : System generated reports based on the Training Performances
                • Information Database management
                • Mass Image Upload and management

                Technology features included

                Mass Image upload using Aurigma Image Up loader
                Image tagging functionality
                Extract Geo codes based on UK Post codes implemented using Google AJAX Search API
                Dot net Charting tool for the Graphs generation
                Training slides presentation implemented using ASP.NET Wizard server control

                Technology and platform:

                ASP.NET 2.0
                Ajax Enabled
                SQL Server 2005
                J Query

                  Electronic Rota & Nursing Indicators

                  Sunday, July 20th, 2008

                  The main purpose of this project is to provide NHIS nurses, staffs and organization administrators the means to view and manage staff shifts and to generate reports to analyse and optimise resource utilisation and save valuable supervisory time.

                  As always, we delivered on time and within budget – meeting customer expectations.

                  Manage staff shifts (Rota Section)

                  Perform functions like adding rota codes, manage shift timings, bed details available for a particular day, allocating leave hours etc.

                  Reports section – Generate charts, reports and data based on rotas.

                  Administration section – Performing tasks such as managing user profiles and roles, importing staff and budget data details.

                  Technologies used

                  ASP.NET 2.0, C#, ASP.NET AJAX (formerly MS Atlas), SQL Server 2005, dotnetcharting engine (for generating charts)

                  Features

                  • Rota section is completely ajax enabled (look and feel of a desktop application)
                  • Used Web services to call AJAX requests
                  • On the fly editing of rota codes (changes will be reflected at that moment itself without reloading the page)
                  • Various events are handled in the Rota page (left, right click and hover events)
                  • Customized context menu while right clicking
                  • View staffs from multiple wards
                  • Importing staff data from ESR (Electronic Staff Record)
                  • Reports are viewable at any levels (Trust=>Board=>Division=>Ward) and between any dates
                  • Converted existing excel application into corresponding .NET application
                  • Importing budget data from excel sheets
                  • Special mode for viewing 72 hours Rota details (each hour is further drilled to 15 minutes)
                  • Have facility to get the number of staffs working at a particular hour increment
                  • Facility to generate charts using dotnetcharting engine
                  • Exporting reports to either CSV or native Excel format
                  • Facility to take print outs from the UI itself

                    Extranet for NHS

                    Saturday, July 19th, 2008

                    The purpose of the extranet project is to provide NHS nurses, users and organisation administrators the means to view and manage recordable events. The website will provide nurses, users and organisation administrators with the ability to:

                    • Input new recordable events
                    • Generate and save reports and data on events
                    • Perform administration tasks such as adding, editing and deleting: user profiles on a organisation only level

                    System Users

                    The system will be designed to provide functionality to the following users:

                    • The system administrator has the sole ability to manage multiple organisations.
                    • The organisation administrator has the ability to manage and perform the same tasks as a user within their organisation
                    • Nurses – The user has the ability to, depending on their privileges, input new events, generate reports, change passwords and log out within their organisation

                    The system has the following modules:

                    • Input new recordable events
                    • Generate report
                    • Manage organisation
                    • Manage User
                    • Audit trial

                    Technology features Included

                    • 3D graph generation for report – Pie chart and Bar chart for selected events
                    • Download/Save generated graph as image(*.gif) or CSV
                    • Audit trail of every function – Date and Time, Username, IP address

                    Technology and platform

                    Database – SQL Server 2005

                    Programming Language – ASP.Net C#

                    Technologies:

                    AJAX
                    .NET charting tool (3rd party tool for graph generation)