Disclaimer

The views expressed on this weblog are mine alone and do not necessarily reflect the views of my employer, Avanade.

Search
Recomends...
  • Code Complete, Second Edition
    Code Complete, Second Edition
    by Steve McConnell
Login

Try Snip-It Pro 2.5 Free

Sni-It Pro is a code snippet manager with features designed to make you more productive. Version 2.5 has just been released and includes a ton of new features including support for code teplates, automatic commenting, snipplr integration and more. Try it Today!
> Learn More

Entries in Microsoft Exam 70-553 (49)

Tuesday
Jun122007

MCPD/MCTS Resources

I recently completed my MCPD by upgrading my MCSD.Net using exams 70-553 and 70-554. I used the notes on this blog and practices tests such as Transcender to prepare. I also spent some time in Barnes and noble looking at the Official Microsoft Training Kit for the individual exams that make up part of what each upgrade exam covers.

So take exam 70-553 for example. Passing it give you the MCTS windows and MCTS web credentials. Normally it would take 3 separate exams to attain those credentials: 70-526 which covers Windows Development, 70-528 which covers Web Development and 70-536 which covers Development Fundamentals. These topics map directly to the 3 sections that exam 70-553 covers. And Exam 70-554 maps to the topics covered in exams 70-529 (Distributed Development) and 70-549 (Design, SDLC etc).

The implications of this of course are that you can use materials designed for the individual exams to help you prepare for the upgrade exams. There is a lot more material available, and right now there is not much besides this blog to help you prepare for the upgrade exams. Especially if you know you may be weak in one area, it might be worth getting one of the training guides for a section you aren't as strong in.

You may have noticed new links in the navigation pain under MCPD/MCTS Certifiction resources for Exams 70-526, 70-528, 70-529 and 70-536. Another thing I realized is that my notes are helpful not only for the upgrade exams but also for the individual exams. So I went back and recategorized all of my notes to indicate which exams they would be helpful for.

I will try to post the links to the Training Kit books for the individual exams later today.

Monday
May142007

Passed 70-553

Today I finally passed Exam 70-553. I originally took both 70-553 and 70-554 as Beta Exams over a year ago. Since then I have been busy doing other things, but recently I have been ramping up again to try to actually pass them. That's why I had been posting some supplemental notes recently.

As far as preparation, besides the plethora of links  you will find on this site, as an employee of Avanade, I had access to Transcender exams which were instrumental in preparing me this time around. I also spent much of Saturday at Barnes and Noble using the various study material they had. I was there so long I am surprised they didn't try to throw me out :)

The format was the same as the betas, three sections of thirty questions each. I didn't pass with much room to spare and really wish I studied more on App Domain Creation, Mobile Controls and Click Once Deployment. But in the end, I passed and that's all that counts.

I am aiming to take 70-554 at the end of the month or early June. One down, one to go.

Sunday
May062007

Links for Printing and Code Access Security

As a web developer, printing is another topic I don't get exposed to as often as I would like, so I figured I'd share a few links that will help you understand printing enough for the 70-553 exam.

The article: C# Printing Functions gives a high level overview of the PrintDocument object, the workhorse of printing in .Net as well as the standard dialgos: print dialog, page setup dialog and print preview dialog.

If you want more control over the print output including an event model to program against (OnStartPrint, OnStartPage, etc) you would use the PrintController or PrintControllerWithStatusDialog classes. These are not as heavily used and I couldn't find any good articles outside of the standard MSDN documentation on either of these classes.

I also found another great article that describes code access security. In Code Access Security and .Net you are given a good background on role based security and a brief explanation of some of the options available for declarative security.

Now once you have a good idea in your head of what code access security is and how it can be used, another article similarly titled Code Access Security in the .Net Framework will fuller your understanding of the different things you can control and how you can control them. Read this article second or you will be lost by the second paragaph. The second article really helped me understand the difference between assert and demand.

That's it for now. Hope you found these articles useful in your studies.

Sunday
May062007

Fun with MDI, Toolstrips and Context Menus

These are supplementatal notes I created to help me prepare for Exam 70-553. I have been taking sample exams to prepare and these are intended to help better my understanding in the areas I found I was weakest.

Being that I am primarily a web developer working mostly with ASP.Net one of my weaker areas deal with Windows Form Development.

I created a test application to do a deeper dive into MDI Forms, Toolstrips and Context Menus.

I created a Windows Form Project and quickly created three forms: OuterForm, InnerForm, OtherForm. (I wasn't trying to impress anyone with naming, this was just to delve into code)

Before I start to demonstrate some of the test code I created, a brief background on MDI. MDI stands for Multiple Document Interface. The point is to be able to have a parent window control more than one child window. This is common in applications you use every day. In visual studio you have more than one code file open and you tab between them or you can use the Window Menu to select the document you want to work on.

So to deepen my understanding of these topics I wanted to created a Form that allows me to create two types of other forms which would be housed within it. The first thing I did was set the "IsMDIContainer" Proprty of OuterForm to true. Immediately you will notice the form change from the light gray design surface to an darker gray container.

I wanted to use a menu to give users the option to create instances of OuterForm1 and OuterForm2 so I  dragged a MenuStrip control on to the form. I figured that was enough drag and drop coding so I switched to code view and added the following code to the constructor.


//File Menu
ToolStripMenuItem fileItem = new ToolStripMenuItem();
fileItem.Text = "&File";

ToolStripMenuItem newItem = new ToolStripMenuItem();
newItem.Text = "&New";
newItem.Click += delegate
{
    InnerForm myForm = new InnerForm();
    myForm.MdiParent = this;
    myForm.Show();
};

ToolStripMenuItem otherItem = new ToolStripMenuItem();
otherItem.Text = "Testing";
otherItem.Click += delegate
{
    OtherForm myForm = new OtherForm();
    myForm.MdiParent = this;
    myForm.Show();
};


//Create an Array so We can use the AddRange method
ToolStripMenuItem[] items = new ToolStripMenuItem[2];
items[0] = newItem;
items[1] = otherItem;

//Add the two items to the File Menu
fileItem.DropDown.Items.AddRange(items);

Add to the Top Level MenuStrip
this.menuStrip1.Items.Add(fileItem);

This code adds a file menu and new options that use anonymous delegates to create a new instance of one of the other forms. It sets the new instance MDIParent to the current form so it is displayed within the current Form.

So now when I run it, I can create instance of the child forms over and over. But I wanted to be able to create another menu item that lists all the open forms and allows me to easily switch between forms, like the Window Menu does in Visual Studio or Word.

To accomplish this I added the following code.

//Create a new Top Level Menu to reference the open windows
ToolStripMenuItem windows = new ToolStripMenuItem();
windows.Text = "Open Windows";

//assign the mdiwindowslistitem property to the toolstripmenuitem
menuStrip1.MdiWindowListItem = windows;

//add it back to the menu
this.menuStrip1.Items.Add(windows);

I was surprised how easy it was. I didn't have to do any iteration or anything.

Next I wanted to fool around with Context Menus, these are the menus you get when your right click a label or button. So I added a label to InnerForm and changed the Text to "Right Click Me". I then dragged a Context Menu on to the form and set the ContextMenu Property of the label to the ContextMenu I just created. First I just wanted to add a menu Item to show a dialog box.

//Add a simple menu item for the Right Click Menu
ToolStripMenuItem item = new ToolStripMenuItem();
item.Text = "Testing";
item.Click += delegate
{
    MessageBox.Show("Hello World");
};

this.contextMenuStrip1.Items.Add(item);

This worked simply enough. But now I wanted to add a text box to the right click menu, or any control for that matter. For this we needed to use a ToolStripControlHost.

//Create a TextBox to add to the right click menu
TextBox t = new TextBox();
t.Text = "This is Text in a Textbox";

//Create a ToolStripControlHost to house the TextBox
ToolStripControlHost myHost = new ToolStripControlHost(t);

//Add to the ContextMenu
this.contextMenuStrip1.Items.Add(myHost);

With this kind of code I could add any type of control including user controls to a right click menu.

After writing this code I feel better prepared to answer questions on these topics on the exam. I hope it helps you too.

Thursday
May112006

Exam 70-553 - Configure the installation of a Windows Forms application by using ClickOnce technology.

Section 3

  • Part 5

    Configuring and Deploying Applications 

    • Topic 1

Configure the installation of a Windows Forms application by using ClickOnce technology.

  • Install a Windows Forms application on a client computer by using ClickOnce deployment.
  • Install a Windows Forms application from a server by using ClickOnce deployment.
  • Configure the required permissions of an application by using ClickOnce deployment.

Summary

The following three paragraphs are an excerpt from the first resource that describes the basic concepts of Click Once Deployment::

ClickOnce” is a new application deployment technology that makes deploying a Windows Forms based application as easy as deploying a web application. With “ClickOnce” running a Windows Forms application is as simple as clicking a link in a web page. For administrators, deploying or updating an application is simply a matter of updating files on a server; no need to individually touch every client.

“ClickOnce” applications can be deployed via web servers, file servers or CDs. A “ClickOnce” application can choose to be installed, meaning it gets start menu & add/remove program entries, or an app can simply be run & cached. “ClickOnce” has several ways it can be configured to automatically check for application updates. Alternatively, applications can use the ClickOnce APIs (System.Deployment), to control when updates should happen.

Visual Studio has rich support for publishing applications via “ClickOnce”. At anytime, you can simply choose to publish your existing Windows Forms application project to a network server. Visual Studio will automatically generate the xml manifest files that drive “ClickOnce” and publish the app to the specified server.

Click Once Security is dependent on Internet Explorer Settings and the deployment policy, which is an Xml file generated by Visual Studio based on the Project’s Security Property Page. The Xml element used is the TrustInfo Element.

Other Resources & Links:

Click Once
http://www.windowsforms.net/WhidbeyFeatures/default.aspx?PageID=2&ItemID=19&Cat=Runtime&tabindex=5

Deploy and Update Your Smart Client Projects Using a Central Server
http://msdn.microsoft.com/msdnmag/issues/04/05/ClickOnce/

ClickOnce Deployment
http://msdn2.microsoft.com/en-us/library/t71a733d.aspx