C# analysis

– lyn – The Craft of Story, Screenwriting Fundamentals
Creativity and Learning: A Conversation with Lynda Barry
Mobile Development with C# : http://it-ebooks.info/book/788/
http://blog.xamarin.com/
eight-reasons-c-sharp-is-the-best-language-for-mobile-development/
The statisticians behind the Popularity of Programming Languages (PYPL) index have
named C# the language of the year for 2012. Their data shows that C# popularity grew by
2.3 percent in 2012, more than any other programming language during the same period.
What accounts for the growth of C# in 2012? Well, the launch of Windows 8 has probably
played a role — C# remains the dominant language of third-party application development
on Windows devices.
But we think there’s more to it than that. Here are eight reasons why C# is
increasingly the programming language of choice for mobile development:
Cutting edge – asynchronous programming as a first-class language feature turns what is
typically regarded as boring, repetitive and error prone coding into a simple and
delightful experience. And anonymous types, lambda expressions, type inference,
functional-style programming and LINQ allow developers to write code that is highly
expressive and easy to maintain.
Powerful features – object-oriented programming and encapsulation make it easier to
structure code for maximum reuse. Capabilities like reflection and dependency injection
offer developers a lot of power and flexibility.
Advanced runtime – garbage collection greatly simplifies development by eliminating the
cognitive overhead of manual memory management. Developers can focus on solving
problems that matter instead of fighting with pointers.
Reliability – type safety makes it faster and easier for programmers to detect and
isolate bugs at compile time–an especially important characteristic in mobile
development where the build/run/test cycle is lengthened by the need for specialized
packaging and deployment to a device or emulator. With compile-time sanity checking, C#
developers don’t have to wait until their program crashes in order to find obvious
errors.
Easy to adopt – extremely easy language to learn, especially for developers who are
already familiar with the principles of object-oriented programming. The enormous body
of available C# reference material ensures that new developers never get stuck.
Fast execution – C# on iOS is powered by the LLVM optimizing compiler, the same backend
used by C and C++ that powers the operating system, giving you the best of both worlds:
the high productivity of C# and the performance of a low-level language. On Android, C#
performs better than Java both because of language design choices (support for value
types, real generic types, non-virtual method defaults) and the more mature Mono
runtime compared to the relatively young Dalvik.
Native access – seamless interoperability with native code gives developers the best of
both worlds. You can bind native libraries and leverage the power of P/Invoke to expose
additional functionality to the world of managed code. This is how Xamarin has exposed
100% of the native APIs on iOS and Android to C# developers, giving you access to the
full expressive power of the underlying platform, as Rdio recently demonstrated with
their C#-based iOS and Android apps.
And the big number 8: portability. Between Windows, iOS and Android, your C# code can
run on over 2.2 billion devices. And beyond mobile, C# is highly portable in a wide
range of environments across the spectrum of mobile, embedded, desktop, and server
computing.
http://xamarin.com/ : a C# framework for developing Cross-Platform Mobile Apps

Using loader in between service ng

myApp.factory('myService', function($http) {

    var getData = function() {

        return $http({method:"GET", url:"/my/url"}).then(function(result){
            return result.data;
        });
    };
    return { getData: getData };
});


function myFunction($scope, myService) {
    var myDataPromise = myService.getData();
    myDataPromise.then(function(result) {  // this is only run after $http completes
       $scope.data = result;
       console.log("data.name"+$scope.data.name);
    });
}