Showing posts with label SOA. Show all posts
Showing posts with label SOA. 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.

Windows Workflow Foundation - An Introduction

Wednesday, July 9, 2008

Introduction

WF provides you with the multithreading capability without the hassle. Without WF you either execute your workflow tasks in the same thread that runs your UI or main process or you write multithreaded software yourself (It’s not so easy) and have a separate threads execute the process logic.

Comparing WF with Microsoft Biztalk and WCF

Orchestration is Biztalk’s term for workflow. You can use a Graphical Editor to lay out business processes, and some of these processes might even include external egencies, such as a trading partner, through external communications protocols. Communication with your trading partners is easy and seamless with BizTalk.

Biztalk is designed for inter application (multiple apps). WF, on the other hand, is designed to work at OS level and is therefore appropriate for integration into a single app within a single domain. But it doesn’t mean you can’t communicate with external processes and servers using WF, but WF’s primary focus is facilitating WF functionality within your app.

When, in a application, we change a given method’s signature, name etc, I must recompile all the software that that uses that method. So we use web service by changing our mentality from “use this method” to “use this service”. That is called SOA. Service based software is integrated using contracts and policy. It’s expected that services will morph and change, and the goal is to have dependent processes recognize changes and adjust accordingly. Contract identify what services are available. Policy describes how the services are to be used. When contracts or policies are changed, ideally service consumers automatically adjust and change as well

Actually, when contracts or policies change, things don’t magically fix themselves. In reality, service provider should communicate how many previous versions they’ll support and service sonsumer should update their code to most up-to-date version asap.

Though WF provides you with some basic tool to use XML web services, you can expose and consume web services. But WCF is much more powerful. Primary goal of WCF is to unify the programming model for all electronic processes, certainly second goal is to implement Internet standards for Web Services and allow you to build connection based SOA. If you require string SOA support, by all means use WCF.