Your SlideShare is downloading. ×
0
Developing Windows and Web Applications using Visual Studio.NET Peter Gfader Senior Software Architect
Homework? <ul><li>Task </li></ul><ul><ul><li>Deploy your homework from week2 via ClickOnce to your local IIS. </li></ul></...
<ul><li>N-Tier Application </li></ul><ul><li>Deployment  </li></ul><ul><ul><li>ClickOnce </li></ul></ul><ul><li>Security <...
<ul><li>What are Web Services? </li></ul><ul><li>WCF Services </li></ul><ul><li>Consuming Web Services </li></ul><ul><li>T...
<ul><li>SSA @ SSW </li></ul><ul><li>Loves C# and .NET  (Java not anymore) </li></ul><ul><li>Specializes in  </li></ul><ul>...
Web services
<ul><li>Wikipedia </li></ul><ul><ul><li>A web service is a collection of protocols and standards  </li></ul></ul><ul><ul><...
<ul><li>The technologies that underpin Web Services are  </li></ul><ul><ul><li>XML </li></ul></ul><ul><ul><li>SOAP (Simple...
<ul><li>There are many public web services available on the Web, and there are Web Services APIs for popular applications ...
<ul><li>Formerly .NET 3 was known as WinFX </li></ul><ul><li>Consists of  </li></ul><ul><ul><li>Windows Presentation Found...
WCF
<ul><li>Building block for building Connected Systems </li></ul><ul><li>Designed around messages! </li></ul><ul><li>Suppor...
<ul><li>Supports variety of transport and encoding configurations </li></ul><ul><li>Messaging standard is SOAP but this is...
<ul><li>Supports transport protocols,  </li></ul><ul><ul><li>HTTP   Web services </li></ul></ul><ul><ul><li>UDP   User Dat...
<ul><li>Endpoint </li></ul><ul><ul><li>Address where the WCF service is available from </li></ul></ul><ul><ul><li>Binding ...
 
<ul><li>Built in WCF Service Project </li></ul><ul><ul><li>Define the service with  ServiceContract </li></ul></ul><ul><ul...
Define a contract
<ul><li>Contract ( I Service.cs) </li></ul><ul><li>It means INTERFACE </li></ul>Define an Interface contract
<ul><li>Contract </li></ul><ul><li>Implementation </li></ul>Implement the contract
 
<ul><li>Automatic - Add a Web Reference to your client </li></ul><ul><ul><li>Dynamically generates a web service client cl...
<ul><li>Creating </li></ul><ul><li>Consuming </li></ul><ul><li>Configuring </li></ul>WCF Service Demo (The LAB)
Multithreading in .Net
<ul><li>Why do we need threading? </li></ul><ul><ul><li>Blocking calls (e.g. Disk IO, Network) on long running-tasks </li>...
<ul><li>Application can spawn one or more processes </li></ul><ul><li>Processes have isolation, separation of  </li></ul><...
<ul><li>Windows is a Pre-emptive multitasking operating system </li></ul><ul><li>The O/S is responsible for managing times...
<ul><li>System.Threading </li></ul><ul><li>Background Worker </li></ul><ul><li>“ Threadsafe” classes (particularly collect...
<ul><li>Cannot Interact with UI Elements from a thread that it did not create (the UI object is not accessible to the othe...
<ul><li>Single thread apartment (STA) </li></ul>What is STA (and what happened to MTA?)
But MTA was in VB6?
<ul><li>Application.DoEvents </li></ul><ul><li>System.Threading </li></ul><ul><ul><li>Thread.Start </li></ul></ul><ul><ul>...
<ul><li>Call this method inside long running code that is being processed </li></ul><ul><li>What it does is it issues a co...
Application.DoEvents() FetchData SearchGoogle() Return Merge Done Worker 1 SearchYahoo() Return Worker 2 UI
<ul><li>Do Events processes all Window Messages in the queue until it has run out of messages (click, paint, focus, etc.) ...
<ul><li>GOOD </li></ul><ul><li>BAD  usage of DoEvents </li></ul><ul><li>Application.Run </li></ul><ul><li>Process mouse up...
<ul><li>BackgroundWorker Component </li></ul><ul><li>Uses Delegates under the covers </li></ul><ul><li>Sites to Research <...
<ul><li>Synchronization problem solved in VS 2005 (and later) by only allowing the main UI thread to access UI controls. <...
<ul><li>Makes life easy in .Net! </li></ul><ul><li>No complex code needed only need to implement a few methods: </li></ul>...
The One Golden Rule
<ul><li>When Multiple threads access a shared resource, only 1 thread can update it at a time. </li></ul><ul><li>Otherwise...
<ul><li>Synchronisation involves controlling access to a shared resource so only one thread can access the resource at a t...
<ul><li>The purpose of the synchronization model implemented by this class is to allow the internal asynchronous/synchroni...
<ul><li>Windows WorkFlow (WF) parallel task execution </li></ul><ul><ul><li>WF is explcitly designed for long-running task...
<ul><li>SSW Link Auditor </li></ul>A Real World Example
<ul><li>Threading was used to achieve </li></ul><ul><ul><li>A responsive UI throughout </li></ul></ul><ul><ul><li>Optimize...
<ul><li>Threading in .NET </li></ul><ul><ul><li>http://www.albahari.com/threading/ </li></ul></ul><ul><li>Tip! - Keyboard ...
<ul><li>LINQ to SQL vs LINQ to Entities </li></ul><ul><ul><li>http://stackoverflow.com/questions/2443836/what-is-the-diffe...
<ul><li>.NET </li></ul><ul><li>C# </li></ul><ul><li>Visual Studio 2010 </li></ul><ul><li>LINQ </li></ul><ul><li>Databindin...
Lab
<ul><li>Sign up on  http://www.aspnet4.de/   </li></ul><ul><ul><li>Yes its german! </li></ul></ul><ul><ul><li>But free ASP...
3  things… <ul><li>PeterGfader @ssw.com.au </li></ul><ul><li>http:// peitor.blogspot.com </li></ul><ul><li>twitter.com/ pe...
<ul><li>Thank  You! </li></ul><ul><li>Gateway Court Suite 10  81 - 91 Military Road  Neutral Bay, Sydney NSW 2089  AUSTRAL...
Upcoming SlideShare
Loading in...5
×

Web services, WCF services and Multi Threading with Windows Forms

4,723

Published on

What are Web Services?
WCF Services
Consuming Web Services
Threading
Do the lab
Review

Published in: Education
1 Comment
0 Likes
Statistics
Notes
  • Be the first to like this

No Downloads
Views
Total Views
4,723
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
76
Comments
1
Likes
0
Embeds 0
No embeds

No notes for slide
  • Click to add notes Peter Gfader Developing Windows and Web applications
  • Task Deploy your homework from week2 via ClickOnce to your local IIS. Homework from week2 = Winforms UI with LINQ 2 SQL  that displays list of employees Show me the screen of ClickOnce:  Properties in WinformsUI, “Publish”, “Application Files”     Question What happens here with ClickOnce... Your current version is 1.5 You rollback a version (in Control panel, uninstall), now you have 1.4   How can you get version 1.5 again? Do you get it automatically?
  • Part 1: Deployment of .NET Winforms apps History Deployment &amp; Updates Security Issues &amp; Warnings Configuration and user settings Part 2: Security Role-based security Authentication and Authorization Impersonation Code Access Security Assembly Strong Naming
  • Java current version 1.6 Update 17 1.7 released next year 2010 Dynamic languages Parallel computing Maybe closures
  • http://prezi.com/tg2kaukw8sez/wcf-intro/
  • The Structure of an Endpoint Each endpoint consists of the following: Address: The address uniquely identifies the endpoint and tells potential consumers of the service where it is located. It is represented in the WCF object model by the EndpointAddress class. An EndpointAddress class contains: A Uri property, which represents the address of the service. An Identity property, which represents the security identity of the service and a collection of optional message headers. The optional message headers are used to provide additional and more detailed addressing information to identify or interact with the endpoint. For more information, see Specifying an Endpoint Address . Binding: The binding specifies how to communicate with the endpoint. This includes: The transport protocol to use (for example, TCP or HTTP). The encoding to use for the messages (for example, text or binary). The necessary security requirements (for example, SSL or SOAP message security). For more information, see Windows Communication Foundation Bindings Overview . A binding is represented in the WCF object model by the abstract base class Binding . For most scenarios, users can use one of the system-provided bindings. For more information, see System-Provided Bindings . Contracts: The contract outlines what functionality the endpoint exposes to the client. A contract specifies: What operations can be called by a client. The form of the message. The type of input parameters or data required to call the operation. What type of processing or response message the client can expect. For more information about defining a contract, see Designing Service Contracts . Behaviors: You can use endpoint behaviors to customize the local behavior of the service endpoint. Endpoint behaviors achieve this by participating in the process of building a WCF runtime. An example of an endpoint behavior is the ListenUri property, which allows you to specify a different listening address than the SOAP or Web Services Description Language (WSDL) address. For more information, see ClientViaBehavior .
  • Show windows search form
  • Demo Windows Search and talk about how this is a threaded application. When you click search a new thread is launched to search for files while the main thread waits for results to display. If it were single threaded, then when you click search the application will become unresponsive until all the search results have returned.
  • STA Model depreciated MTA
  • private void LoadData() { for (int i = 0; i &lt; 30; i++ ) { listBox1.Items.Add(&amp;quot;Peter - Gfader - &amp;quot; + DateTime.Now.ToString(&amp;quot;s&amp;quot;)); Application.DoEvents(); Thread.Sleep(200); } }
  • new Thread(LoadData).Start();
  • Click to add notes Peter Gfader Developing Windows and Web applications
  • Transcript of "Web services, WCF services and Multi Threading with Windows Forms"

    1. 1. Developing Windows and Web Applications using Visual Studio.NET Peter Gfader Senior Software Architect
    2. 2. Homework? <ul><li>Task </li></ul><ul><ul><li>Deploy your homework from week2 via ClickOnce to your local IIS. </li></ul></ul><ul><ul><li>Show me the screen of ClickOnce:  Properties in WinformsUI, “Publish”, “Application Files” </li></ul></ul><ul><li>Question </li></ul><ul><ul><li>How can you get version 1.5 again if you rolled back from version 1.6? </li></ul></ul><ul><ul><li>Do you get it automatically? </li></ul></ul>
    3. 3. <ul><li>N-Tier Application </li></ul><ul><li>Deployment </li></ul><ul><ul><li>ClickOnce </li></ul></ul><ul><li>Security </li></ul>Session 4: Last week?
    4. 4. <ul><li>What are Web Services? </li></ul><ul><li>WCF Services </li></ul><ul><li>Consuming Web Services </li></ul><ul><li>Threading </li></ul><ul><li>Do the lab </li></ul><ul><li>Review </li></ul>Session 5: WCF and Multi-Threading
    5. 5. <ul><li>SSA @ SSW </li></ul><ul><li>Loves C# and .NET (Java not anymore) </li></ul><ul><li>Specializes in </li></ul><ul><ul><li>Windows Forms </li></ul></ul><ul><ul><li>ASP.NET </li></ul></ul><ul><ul><li>TFS testing </li></ul></ul><ul><ul><li>Automated tests </li></ul></ul><ul><ul><li>Silverlight </li></ul></ul>Peter Gfader
    6. 6. Web services
    7. 7. <ul><li>Wikipedia </li></ul><ul><ul><li>A web service is a collection of protocols and standards </li></ul></ul><ul><ul><li>Used for exchanging data between applications or systems </li></ul></ul><ul><ul><li>Software applications written in various programming languages and running on various platforms can use web services to exchange data over computer networks </li></ul></ul>What are Web Services?
    8. 8. <ul><li>The technologies that underpin Web Services are </li></ul><ul><ul><li>XML </li></ul></ul><ul><ul><li>SOAP (Simple Object Access Protocol) </li></ul></ul><ul><ul><li>This is a way of sending around objects over a network </li></ul></ul><ul><li>Cross Platform e.g. </li></ul><ul><ul><li>Java Web Service (AXIS) can be consumed by a .NET application and vice versa </li></ul></ul>What are Web Services? Con'd
    9. 9. <ul><li>There are many public web services available on the Web, and there are Web Services APIs for popular applications such as: </li></ul><ul><ul><li>Google http://code.google.com/apis/ </li></ul></ul><ul><ul><li>Amazon http://en.wikipedia.org/wiki/Amazon_Web_Services </li></ul></ul><ul><ul><li>Facebook http://developers.facebook.com/ </li></ul></ul><ul><ul><li>Virtual Earth http://msdn2.microsoft.com/en-us/virtualearth/default.aspx </li></ul></ul><ul><ul><li>Microsoft, new to the party with Azure : http://www.microsoft.com/azure/default.mspx </li></ul></ul><ul><ul><li>More here </li></ul></ul><ul><ul><ul><li>http://www.service-repository.com/ </li></ul></ul></ul>Public Web Services
    10. 10. <ul><li>Formerly .NET 3 was known as WinFX </li></ul><ul><li>Consists of </li></ul><ul><ul><li>Windows Presentation Foundation WPF (Silverlight is a subset of this) </li></ul></ul><ul><ul><li>Windows Communication Foundation WCF </li></ul></ul><ul><ul><li>Windows Workflow Foundation WF </li></ul></ul><ul><ul><li>Cardspace </li></ul></ul>Windows Communication Foundation (WCF) Part of the .NET Framework 3 and 3.5
    11. 11. WCF
    12. 12. <ul><li>Building block for building Connected Systems </li></ul><ul><li>Designed around messages! </li></ul><ul><li>Support for all standards/specifications around messaging (particularly driven by WS-*) </li></ul><ul><li>Consistent API regardless of messaging requirement </li></ul>WCF
    13. 13. <ul><li>Supports variety of transport and encoding configurations </li></ul><ul><li>Messaging standard is SOAP but this is not the only option </li></ul><ul><li>Extensibility model allows for any custom requirements/encoders/channels to be developed </li></ul>Not just “Web Services”
    14. 14. <ul><li>Supports transport protocols, </li></ul><ul><ul><li>HTTP Web services </li></ul></ul><ul><ul><li>UDP User Datagram Protocol </li></ul></ul><ul><ul><li>TCP Transmission Control Protocol </li></ul></ul><ul><li>Supports </li></ul><ul><ul><li>Queues MSMQ (Microsoft Message Queue) </li></ul></ul><ul><ul><li>Transactions </li></ul></ul><ul><ul><li>Reliable sessions </li></ul></ul><ul><ul><li>Better security model </li></ul></ul><ul><li>http://prezi.com/tg2kaukw8sez/wcf-intro/ </li></ul>Windows Communication Foundation (WCF)
    15. 15. <ul><li>Endpoint </li></ul><ul><ul><li>Address where the WCF service is available from </li></ul></ul><ul><ul><li>Binding how to get access to the WCF service </li></ul></ul><ul><ul><li>Contract what the WCF service can do </li></ul></ul><ul><ul><li>Behavior how the service will behave locally (e.g. debugging) </li></ul></ul>Definitions
    16. 17. <ul><li>Built in WCF Service Project </li></ul><ul><ul><li>Define the service with ServiceContract </li></ul></ul><ul><ul><li>Define methods with OperationContract </li></ul></ul>Creating a WCF Service
    17. 18. Define a contract
    18. 19. <ul><li>Contract ( I Service.cs) </li></ul><ul><li>It means INTERFACE </li></ul>Define an Interface contract
    19. 20. <ul><li>Contract </li></ul><ul><li>Implementation </li></ul>Implement the contract
    20. 22. <ul><li>Automatic - Add a Web Reference to your client </li></ul><ul><ul><li>Dynamically generates a web service client class with all the exposed methods </li></ul></ul><ul><ul><li>Synchronous and Asynchronous methods </li></ul></ul><ul><ul><li>Silverlight: All web service method calls are Asynchronous </li></ul></ul>Consuming Web Services
    21. 23. <ul><li>Creating </li></ul><ul><li>Consuming </li></ul><ul><li>Configuring </li></ul>WCF Service Demo (The LAB)
    22. 24. Multithreading in .Net
    23. 25. <ul><li>Why do we need threading? </li></ul><ul><ul><li>Blocking calls (e.g. Disk IO, Network) on long running-tasks </li></ul></ul><ul><ul><li>Responsive User Interface (UI) </li></ul></ul><ul><ul><ul><li>E.g. Windows Desktop Search </li></ul></ul></ul><ul><ul><li>Better performance (especially on multi-core processors) </li></ul></ul>Threading
    24. 26. <ul><li>Application can spawn one or more processes </li></ul><ul><li>Processes have isolation, separation of </li></ul><ul><ul><li>Data </li></ul></ul><ul><ul><li>Memory </li></ul></ul><ul><ul><li>Resources </li></ul></ul><ul><li>Processes contain Threads </li></ul>Processes
    25. 27. <ul><li>Windows is a Pre-emptive multitasking operating system </li></ul><ul><li>The O/S is responsible for managing timeslices (quantums) between different processes </li></ul><ul><li>The Kernal switches/schedules execution code between threads </li></ul><ul><li>UNIX is a true cooperative multi-tasking operating system </li></ul><ul><ul><li>Processes instruct the O/S when to switch contexts </li></ul></ul><ul><ul><li>This is brittle since a poorly written application can hang the system by never allowing other processes to run </li></ul></ul>Threading and the O/S
    26. 28. <ul><li>System.Threading </li></ul><ul><li>Background Worker </li></ul><ul><li>“ Threadsafe” classes (particularly collections) </li></ul><ul><li>Thread Synchronisation </li></ul><ul><li>Interprocess communication </li></ul><ul><li>AppDomain </li></ul><ul><li>STA (Single Threaded Apartment) Model </li></ul>Threading in .Net
    27. 29. <ul><li>Cannot Interact with UI Elements from a thread that it did not create (the UI object is not accessible to the other thread) </li></ul><ul><li>Some classes are not Threadsafe, meaning that data may be overwritten/corrupted (e.g. Data collections) </li></ul><ul><li>Cannot predicate the sequence when separate threads will finish their work </li></ul>Important Concepts
    28. 30. <ul><li>Single thread apartment (STA) </li></ul>What is STA (and what happened to MTA?)
    29. 31. But MTA was in VB6?
    30. 32. <ul><li>Application.DoEvents </li></ul><ul><li>System.Threading </li></ul><ul><ul><li>Thread.Start </li></ul></ul><ul><ul><li>Delegate.BeginInvoke </li></ul></ul><ul><li>BackgroundWorker component </li></ul>Threading in WinForms (bad to good)
    31. 33. <ul><li>Call this method inside long running code that is being processed </li></ul><ul><li>What it does is it issues a command to the UI to process pending events on the message queue e.g. </li></ul><ul><ul><li>Mouse Clicks </li></ul></ul><ul><ul><li>Redraw Window etc </li></ul></ul>Application.DoEvents()
    32. 34. Application.DoEvents() FetchData SearchGoogle() Return Merge Done Worker 1 SearchYahoo() Return Worker 2 UI
    33. 35. <ul><li>Do Events processes all Window Messages in the queue until it has run out of messages (click, paint, focus, etc.) </li></ul><ul><li>In an example of loading a Listbox with items: </li></ul><ul><ul><li>What happens if the user clicks the close </li></ul></ul><ul><ul><li>button? Ooops!  IndexOutOfRangeException! Clicking on the close box has invoked the form’s Dispose method, which has cleared the control collection.  What's worse is that clicking close on the form didn't stop the list box processing from finishing up - while the form was no longer visible, this handler was merrily keeping the application alive. </li></ul></ul><ul><ul><li>Why wouldn’t this normally happen? </li></ul></ul><ul><ul><li>The action of the user pressing the close button would not be processed until you’ve returned from the handler for the button click. </li></ul></ul>DoEvents is Bad!
    34. 36. <ul><li>GOOD </li></ul><ul><li>BAD usage of DoEvents </li></ul><ul><li>Application.Run </li></ul><ul><li>Process mouse up on button </li></ul><ul><li>Fire ButtonClick event </li></ul><ul><li>Add bunch of items to listbox </li></ul><ul><li>Update the first control on the form </li></ul><ul><li>Process mouse up on close box </li></ul><ul><li>Dispose the form </li></ul><ul><li>Application.Run </li></ul><ul><li>Process mouse up on button </li></ul><ul><li>Fire ButtonClick event </li></ul><ul><li>Add some items to listbox </li></ul><ul><li>Call Application.DoEvents to make it look more responsive </li></ul><ul><li>Process mouse up on close box </li></ul><ul><li>Dispose the form </li></ul><ul><li>Add remaining items to listbox  </li></ul><ul><li>Update the first control on the form  -- BOOM!  Controls collection has been cleared! </li></ul>
    35. 37. <ul><li>BackgroundWorker Component </li></ul><ul><li>Uses Delegates under the covers </li></ul><ul><li>Sites to Research </li></ul><ul><ul><li>http://msdn2.microsoft.com/en-us/library/system.componentmodel.backgroundworker(vs.80).aspx </li></ul></ul><ul><ul><li>http://www.codeplex.com/ExerciseBackgroundW </li></ul></ul><ul><ul><li>http://www.codeguru.com/columns/vb/article.php/c10755/ </li></ul></ul>An Easier Way
    36. 38. <ul><li>Synchronization problem solved in VS 2005 (and later) by only allowing the main UI thread to access UI controls. </li></ul><ul><li>Worker threads must tell the UI thread to make a change on their behalf via a delegate. </li></ul>Synchronising User Interface
    37. 39. <ul><li>Makes life easy in .Net! </li></ul><ul><li>No complex code needed only need to implement a few methods: </li></ul><ul><ul><li>DoWork </li></ul></ul><ul><ul><li>RunWorkCompleted </li></ul></ul><ul><ul><li>ProgressChanged </li></ul></ul>Background Worker Component
    38. 40. The One Golden Rule
    39. 41. <ul><li>When Multiple threads access a shared resource, only 1 thread can update it at a time. </li></ul><ul><li>Otherwise we get: </li></ul><ul><li>Deadlocks </li></ul><ul><li>Race Conditions </li></ul><ul><li>Correct use of Synchronisation prevents these situations </li></ul>The One Golden Rule
    40. 42. <ul><li>Synchronisation involves controlling access to a shared resource so only one thread can access the resource at a time. </li></ul><ul><li>Resources include: </li></ul><ul><li>Variables e.g. Arrays </li></ul><ul><li>User Interface Controls e.g. Progress Bar </li></ul>Synchronization & Shared Resources
    41. 43. <ul><li>The purpose of the synchronization model implemented by this class is to allow the internal asynchronous/synchronization operations of the common language runtime to behave properly with different synchronization models </li></ul><ul><li>This model also simplifies some of the requirements that managed applications have had to follow in order to work correctly under different synchronization environments. </li></ul>SynchronisationContext Class
    42. 44. <ul><li>Windows WorkFlow (WF) parallel task execution </li></ul><ul><ul><li>WF is explcitly designed for long-running tasks </li></ul></ul><ul><li>PLINQ (Parallel Linq) .Net 4.0 </li></ul><ul><li>UI Control Virtual Mode </li></ul><ul><ul><li>You control how the data is retrieved into the control when it needs to display </li></ul></ul><ul><ul><li>Use this if you have a 1 million rows in memory, but can only display 50 at a time (similar to paging in a webform) </li></ul></ul>Other .Net multi-threading Technologies and Concepts
    43. 45. <ul><li>SSW Link Auditor </li></ul>A Real World Example
    44. 46. <ul><li>Threading was used to achieve </li></ul><ul><ul><li>A responsive UI throughout </li></ul></ul><ul><ul><li>Optimize the scanning process </li></ul></ul><ul><li>Techniques that we used </li></ul><ul><ul><li>Delegates and Callbacks </li></ul></ul><ul><ul><li>ManagedThreadPool class </li></ul></ul>Link Auditor
    45. 47. <ul><li>Threading in .NET </li></ul><ul><ul><li>http://www.albahari.com/threading/ </li></ul></ul><ul><li>Tip! - Keyboard shortcuts </li></ul><ul><ul><li>http://www.itscodingtime.com/post/Visual-Studio-2010-Keyboard-Mouse-Shortcuts.aspx </li></ul></ul>Resources
    46. 48. <ul><li>LINQ to SQL vs LINQ to Entities </li></ul><ul><ul><li>http://stackoverflow.com/questions/2443836/what-is-the-differnce-between-linq-to-entities-linq-to-sql-and-linq-to-data </li></ul></ul><ul><ul><li>http://www.ssw.com.au/ssw/Standards/Rules/RulesToBetterLINQ.aspx#WhyLINQtoEntitiesNotSQL </li></ul></ul>Resources - N-Tier apps
    47. 49. <ul><li>.NET </li></ul><ul><li>C# </li></ul><ul><li>Visual Studio 2010 </li></ul><ul><li>LINQ </li></ul><ul><li>Databinding </li></ul><ul><li>UX (Usability) </li></ul><ul><li>Winforms – Best practices </li></ul><ul><li>N-Tier applications </li></ul><ul><li>Deployment – Clickonce </li></ul><ul><li>Security </li></ul><ul><li>Web services </li></ul><ul><li>WCF </li></ul><ul><li>Threading </li></ul>Part 1 - Review
    48. 50. Lab
    49. 51. <ul><li>Sign up on http://www.aspnet4.de/ </li></ul><ul><ul><li>Yes its german! </li></ul></ul><ul><ul><li>But free ASP.NET 4 hosting with SQL Server backend </li></ul></ul><ul><ul><li>Use http://translate.google.com/ </li></ul></ul><ul><li>ASP.NET Quick hit videos </li></ul><ul><ul><li>http://www.asp.net/learn/aspnet-4-quick-hit-videos/ </li></ul></ul>Part 2 – ASP.NET  The web!!
    50. 52. 3 things… <ul><li>PeterGfader @ssw.com.au </li></ul><ul><li>http:// peitor.blogspot.com </li></ul><ul><li>twitter.com/ peitor </li></ul>
    51. 53. <ul><li>Thank You! </li></ul><ul><li>Gateway Court Suite 10 81 - 91 Military Road Neutral Bay, Sydney NSW 2089 AUSTRALIA </li></ul><ul><li>ABN: 21 069 371 900 </li></ul><ul><li>Phone: + 61 2 9953 3000 Fax: + 61 2 9953 3105 </li></ul><ul><li>[email_address] www.ssw.com.au </li></ul>
    1. A particular slide catching your eye?

      Clipping is a handy way to collect important slides you want to go back to later.

    ×