Showing posts with label technology. Show all posts
Showing posts with label technology. Show all posts

Microsoft .Net 2010

Sunday, November 29, 2009

It’s always been fun watching how Microsoft has eased the whole SDLC to promote RAD, with the release of their programming framework and tool. Same had happened with .Net 4.0 video series, spanning over a week, one hour every day ahs finished last Thursday under the guidance of Naresh Sharma. His inputs were definitely helping to understand the concept.
Our strategy to learn new technology is to learn elements of .Net 4.0 first and then divide the team into groups to dig into more specialized features. So far the exercise of watching videos has prepared a ground for the developer to know the basics. I’ll just brief the things we have learnt. And then more detailed about the topics will be covered in upcoming posts.
I’ll begin with the feature that I liked most ‘Managed Extensibility Framework’. I liked the ability to reuse the components already built. Using MEF .net applications are composed dynamically instead of compiling statically. It tackles the problem of software maintenance in a much better way by providing built in extensibility points that can easily be discovered, and which supports discovery of extension.
Another feature is Type Equivalence which fixes the pain re distributing Primary Inter-Op Assemblies. Version independence can be achieved using “Embed Interop Types” compilation option. Entity Framework 2.0 allows you to Model your application first before you design your database. MEF 2.0 actually designs the database for you based on your entities in the model. It makes fairly smart choices in defining Data Types and relationships. So developer always focuses on entities alone not on the mechanism of data persistence. C# 4.0 comes with the feature of named parameters. This features prevent you from the headache of writing multiple overload of same method. Parallel Extension in



Visual Studio 2010 supports Test Driven Development (TDD) by enabling you to write your tests first and then it generates the template for classes, functions and properties. Also debugging has been made deeper to look into calls within .net classes. One simple but exciting feature “Camel Case Search” is also very helpful, if your solution is having a large number of classes spanning across multiple projects. VS2010’s editor is also customized to have your own extension. Deploying an application in different environment has been made easier than ever by maintaining different configuration settings for different environment. UI functional testing is capable of automating Web and Windows application. It records all state of application automatically and run.
While talking about .Net 4.0, I can’t miss ASP.NET to talk about. 4.0 version allows you to control the client side id of controls. So instead of programming against some complex ids that are generated by .net 3.5 or earlier version (something like _dlGenControls__ctl0_CtrlPrintPageInstructions1_lblSubSection ) , Control ids can be defined. Javascript intellisense is more intelligent to list functions available. Mark up editing in ASPX page is also quicker with the features like easy tabbing, auto populating of controls with their short name etc.
Other than C#, ASP.Net and VS 2010; we also covered elements of F#. All in all, it was a good exercise to watch in a group and discuss than distributing videos to individuals and ask them to watch. So by the time you read this posting we would have divide the team for specialization and get them ready for post on the specialized topics.

Must know for Developers (Part -1)

Tuesday, July 8, 2008

I would like to discuss essential things that a developer must be familiar with. In todays competitive world, as more technologies are emerging and so are technology terms. If you look around the internet you will find so many new things that people are talking about. If you don't know the meaning of those terms you'll be not understanding what they are talking about. So I'll be posting the definitions and very very high level of understanding on those terminologies. After that as and when I'll start different blogs for a particular type of technology for detail discussion.

Let us start with
1. Web service

Web service is a performing remote method calls over HTTP.

A software system designed to support inter operable machine to machine interactiona over network.

Web services are frequently just Web APIs can be accessed over a network, such as the Internet, and executed on a remote system hosting the requested services
In Simple terms

You want to use some function e.g. a function DayDiff which takes two dates as parameters and results back the difference of days between both the dates. If somebody has already written the same function, you would not like to reinvent the wheel. You would like to use it. Web service is the way through which he can publish (or expose) this function over the internet and you can discover it and use it in your application. Though lot of things are going on behind the hood. But for introduction purpose you can skip all that.

2. SOAP

On your way to web service you will come across this term. It stands for Simple Object Access Protocol. This is a protocol for exchanging XML based messages over HTTP. SOAP forms the foundation layer of the web services protocol stack providing a basic messaging framework upon which abstract layers can be built.

As a layman's example of how SOAP procedures can be used, a correctly formatted call could be sent to a Web Service enabled web site - for example, a house price database - with the data ranges needed for a search. The site could then return a formatted XML document with all the required results and associated data (prices, location, features, etc). These could then be integrated directly into a third-party site

3. Mashup

Mashup is a web application that combines data from more than one source into a single integrated tool.

Creating a new web service by combining two or more services available that was not originally provided by either source.

There are basically three types of mashups

  • consumer mashups
Consumer mashups combine data elements from multiple sources, hiding this behind a simple unified graphical interface
  • data mashups
A data mashup mixes data of similar types from different sources, for example combining the data from multiple RSS feeds into a single feed with a graphical front end.
  • Enterprise mashups
usually integrates data from internal and external sources
  • Business mashups
A business mashup is combination of all above types of mashups, focusing on both data aggregation and presentation, and additionally adding collaborative functionality, making the end result suitable for use as a business application.