The (Unofficial) ITWorx Technical Architecture Blog

Archive for the ‘MSamy’ Category

Two new MVPs at ITWorx

Posted by archworx on January 2, 2008

This is just a small post to say how happy I am that ITWorx has 2 new MVPs:

1. Marwan Tarek (The great Sharepoint expert and MVP)

2. Myself (I am extremely happy about this)

This is just to extend thanks to all the people who gave us help and support at ITWorx and at Microsoft. You guys have been great to us, especially, Mohammmed Karam (our commander and cheif ūüôā ), Sherif El Touni (our best buddy from Microsoft), Mohamed Wahby (our great MVP lead), Ahmed Bahaa (my personal mentor)¬†and last but not least, Mohamed Nar (our very cool Architect evangelist).

Also many thanks to my best buddy Mohamed  Meligy for his personal and professional help.

Thanks a million everybody, this has been a truly happy day, and looking forward to seeing many more MVPs from our beloved ITWorx. 


Posted in MSamy, Rant | 1 Comment »

Visual Studio Team System Adventures ‚Äď Architect Edition Designers

Posted by archworx on June 5, 2007

I got this question from someone about the Visual Designers in VSTS Enterprise Architect Edition, basically the person was confused with all the designers available and what each one does.

I decided to do a little explanation here, but first I would like to discuss the concept of VSTS Arch Edition. Basically the whole idea behind VSTS is to have Architects (Enterprise, Solution, Infrastructure), Developers, Quality Engineers, Configuration Managers, Project Managers all working together from the same IDE and to have the output of each role saved to a central server so that the whole team can collaborate and communicate easily.

Using VSTS the whole idea of the Architect who walks in, draws fancy diagrams, and lets the developers and project implementers handle the details is over. This type of collaboration helps verify that designs are implementable and keeps the architect in the picture as the design evolves towards implementation requirements.

VSTS Architects Edition:

This edition of Visual Studio is used by Architects to design the system, and communicate those designs with the other members of the team. The word Architect here is very generic, because in reality you can have lots of different types of Architects, each looking at the system from a different perspective.

The main roles and perspectives that are found in almost every software project are as follows:

  1. The Enterprise Architect:This person makes sure that the system being design acts as part of a bigger larger system that benefits the organization as a whole and that conforms to the organization’s standards. The main focus here would be integration with other systems and standards compliance including performance and messaging.
  2. The Infrastructure Architect:This person focuses mainly on the system Physical Architecture, so the diagrams produced would contain information like the number of servers, server configuration, locations, communication lines.
  3. The Solution Architect:The main focus here is the solution at hand; this person takes the input from the Enterprise and Infrastructure Architect and creates a solution that would fit in the Physical and Logical requirements of the entire system. The diagram produced would contain information like the Logical Architecture, the distinct system layers, and the communication points with other systems.


The Designers and how they fit in:

VSTS Architects Edition has a lot of designers that can be used to represent different views of the system. As mentioned above it is possible for each of the above roles to be performed by a different person which makes consolidating and validating these designs all the lot harder. VSTS makes this task so much easier by validating the diagrams against each other, hence allowing the Architects to work together and not to break each other’s designs.

I will mention the most important designers:

  1. Distributed System Designer
  2. Application Designer
  3. Class Designer
  4. Deployment Designer
  5. Logical Datacenter designer

In this posting I will basically answer the question about the Application Designer, I will post on each of the designers I mentioned here in coming posts.

Application Designer is used to design applications that can provide or use services within the scope of a Visual Studio solution. It is a designer mainly used for high level tasks.

I will explain some common scenarios for this tool :

1. If you have a visual studio solution and would like to reverse engineer it so you could see the different components and how they communicated Application Designer would be the tool to use.

2. You could also specify settings and constraints for my application like which protocol it would use to communicate with other services, and connection strings in the web.config.

3. You could define the databases and web services that communicate with my application.

4. You could specify a custom communication protocol that my application will use with windows communication foundation.

After designing your application, you would need to perform the following tasks:

1. Evaluate the application for deployment on the deployment production environment using the development configurations, this would help determine whether or not your logical design is compatible with your physical design.

2. Design parts of your system for reusability.

These are the main features of Application Designer, please post your comments if you there is anything that needs clarification and I will address them in my coming posts.

Posted in MSamy, Visual Studio Team System | Leave a Comment »

ASP.NET Black Belt Tips and tricks

Posted by archworx on February 7, 2007

I was fortunate enough to attend this great session in the MDC by the great Patrick Hynds.

Here are some great tips I got:

1. The Page.SetFocus method that is used to set focus on a control. (A cool feature and somehow unknown by many including me ūüôā ).

2. If you want to maintain the scroll position in a page there is the “MaintainScrollPositionOnPostback” property which is here to replace the dreaded “smart navigation” feature in ASP.NET 1.1.

And then there was a really cool part on membership providers, Here are my notes on that:

Membership Providers


Why Custom providers?

  • If you need a different schema for the db other than the default schema,
  • If data is in another database MS doesn’t support.(Oracle- Informix).
  • If you need a new feature not implemented in the default provider.


Here are a few more ideas:

  • Minimum implementation of Custom provider is Validate User.
  • Location tag in web.config to set zones for anonymous access, others for authenticated users.
  • When inplementing a custom membership provider you will need to implement a custim roles provider as well.


Posted in .NET 2.0, MSamy, VS 2005 | 2 Comments »

WCF Episode 2

Posted by archworx on February 7, 2007

I delivered a session on WCF (Windows Communication Foundation) in the Cutting Edge Club quite a while ago, and have been meaning to post about it as part of a series of posts on .NET 3.0 but as we all know, life is not always as we plan it.

So to finally releive my conscience, I decided to attach the presentation here WCF presentation.

I also attached the sample here WCF_Sample. Just download this file and change the extension to .zip and you should be ready to go.

If you have any comments please let me know.

Posted in .NET 3.0, MSamy | Leave a Comment »

Visual Studio Team System first impressions

Posted by archworx on February 7, 2007

I have been studying Visual Studio Team System for a while now and considering how to approach using such a wonderful but very complex product in a company like ITWorx, or any other development company for that matter.

My first impressions of VSTS were through a session given by Ahmed Bahaa in the Cutting Edge club a couple of months ago. Ahmed gave a very compelling overview on VSTS and why it is such an important product.

The main features and ideas in his presentation that have stuck to my head until now are as follows:

1. VSTS’ main goal is to facilitate collaboration between team members in a project team.

2. The ability to customize processes and extend the current workflows in VSTS that are based on Windows Workflow Foundation.

3. The amount of time project teams spend on communication as a significant overhead and how VSTS helps reduce this overhead while still facilitating communication.

4. The idea of the workitem as the building block of all projects in VSTS, and how we should use a work item as a way of tying project documentation and code.

5. The complexity involved in installing VSTS components  and getting them to work together. (This is important because we have to plan the timing we need to start piloting VSTS).

6. The overall architecture of TFS and how to scale the system.

These are just my first impressions. Tune in for more on VSTS when I start the VSTS  Implementation series.

Posted in MSamy, Visual Studio Team System | Leave a Comment »

How to create a Vista Sidebar Gadget.

Posted by archworx on November 5, 2006

I was asked to create a quick POC (proof of concept) for a MS Windows Vista sidebar gadget. I did the usual search and discovered a few posts.

An interesting post was by a guy called Daniel Moth. It had lots of useful information, but unfortunately it just didn’t work for me. There seems to be something missing in the xml file accompanying the gadget, as well as some rubbish text in the file, so your gadget won’t work but you won’t get an error.

I found a more uptodate sample on MSDN. This was also on Daniel Moth’s blog, so many thanks to him.

Now here is my version of the hello world sidebar gadget.

Step 1:

Create the following HTML file:

 <title>Hello, World!</title>
  body {
¬†<span id=”gadgetContent” style=”font-family: Tahoma; font-size: 10pt;”>Hello, World!</span>

Call it HelloWorld.html

Step 2:

Create the following XML file:

<?xml version=”1.0″ encoding=”utf-8″ ?>
    <name>Hello World!</name>
¬†¬†¬† <author name=”Your Name”>
¬†¬†¬†¬†¬†¬†¬† <info url=”” />
    <description>My first gadget</description>
¬†¬†¬†¬†¬†¬†¬† <host name=”sidebar”>
¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬† <base type=”HTML” apiVersion=”1.0.0″ src=”HelloWorld.html” mce_src=”HelloWorld.html” />
¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬† <platform minPlatformVersion=”0.3″ />

Call this file Gadget.xml

Step 3:

Create a folder called Helloworld.Gadget

Step 4:

1.Simply copy”%userprofile%\AppData\Local\Microsoft\Windows Sidebar\Gadgets” and paste in Windows explorer address bar.
2. When you get to that folder Copy and Paste the “HelloWorld.Gadget” folder there.

Step 5:

Add the gadget to your Sidebar and your done !

That’s how easy it was to create a sidebar gadget. Obviously, you want your gadget to do more than just display “HelloWorld”. You have infinite possibilities. Anything that con be done with DHTML or .NET can be done on a sidebar, you just have to make sure you have the right permissions.

How do I create a gadget with .NET?

If you check out the¬†MSDN link you should find it there, and if I get something done soon, I’ll surely post it.

Also check out the Gadget team blog.

Anyway, that’s it for now, Happy developing!

Posted in MSamy, Programming, Vista | 356 Comments »

IE7 released!

Posted by archworx on October 19, 2006

IE7 is finally here. 

Check out the IE7 team blog.

There are a number of issues you have to check concerning this new browser, I highly recommend going to the link in this post to make sure your web applications are ready.

I personally tested IE7 on my PC and it is working great, and I so far the issues I’ve seen are relatively minor. I think the major issue will be layout support, but I am sure the IE7 team is hard at work on this issue.

Posted in MSamy, News, Web browsers | 1 Comment »

MS SQL 2005 remote connection problem.

Posted by archworx on October 16, 2006

I am sure this is a problem a lot of people face each day.


When you try to connect to SQL 2005 remotely, you get an error message in you application that says:

An error has occurred while establishing a connection to the server.¬† When connecting to SQL Server 2005, this failure may be caused by the fact that under the default settings SQL Server does not allow remote connections. (provider: Named Pipes Provider, error: 40 – Could not open a connection to SQL Server)”

Probable Cause:

The most probable cause of this problem is that your SQL Server is not configured for remote connections.


The solution to this problem is to apply the configuration settings outlined in this MSDN article.

N.B. when you configure the SQL 2005 Surface Area, make sure you choose “using both TCP/IP and Named Pipes”.
SQL 2005 remote connection configuration

Posted in Codegeneration, MS SQL 2005, MSamy | 12 Comments »

Google Office

Posted by archworx on October 11, 2006

In Googles latest attempt to produce a free office (in other words to outdo Microsoft), they have created a new link for people to use their office bundle (a wordprocessor and spreadsheet app) on the internet.

Lets see if people will like the idea of editing documents with an application on the Internet, and if Google will actually keep our data safe. I guess only time will tell.

Posted in General, MSamy, News | 3 Comments »

WCF Episode 1

Posted by archworx on October 11, 2006

I finally started working on my WCF (Windows Communication Foundation) workshop that I will hopefully present in the Cutting Edge Club on 7th Nov.

I started by working on some virtual labs as well as some walkthroughs, as well as reading the MSDN documentation.

Here are some useful definitions:

1. What is WCF?

It is a unified programming model for building Service Oriented applications. Basically it is a ready made framework that helps the developer create a class/component without worrying about how other applications will communicate with this component. 

2. How does WCF do this?

WCF separates the communication infrastructure from the business logic, by giving the developers a framework (set of classes)  that allows them to expose their business classes with any supported protocol, or to write their own custom binding to support custom protocols.

3.What are the ABC’s fo a WCF Service ?

Address: Defines the Address of the service you want to expose.

Binding: Defines how people will consume this resource i.e. what protocol they will use to talk to this resource.

Contract: The service interface. This defines how people will call the service i.e. what are the methods? what are the parameters?

It is very important to stick to the interface when creating an application and the creator of the service has to make sure that the interface doesn’t change or the service consumers could have problems consuming the service, which is why the name contract is significant here.

4. Is a WCF service a fancy name for Web Service?

Actually, yes and no.

To be more precise, a Web Service is a type of WCF service that is hosted in IIS and communicates with consumers using HTTP. A WCF service is a super-set of that, it is any business class that is hosted as a service (can be hosted anywhere), and communicates with consumers with any protocol (the protocol is defined in a config file, you can even use multiple protocols).

5. How do I host a WCF service?

Well, you can host it in the pplication domain of any .NET application. Simply, you can use any application host (doesn’t have to be IIS), as long as it is a .NET application host. So far I have used a console application as a host for my WCF services.

Basically, A service is to a host as a DLL is to a Web or Windows application.

Well, thats just the start, stay tuned for some actual code writing very soon, and please comment.

Posted in .NET 3.0, MSamy | 3 Comments »