.NET
There are 135 entries for the tag
.NET
For those out there that are interested… I am now one of the hosts of the Driven2Distraction podcast. Being a fan of podcasts like .Net Rocks and Hanselminutes for years now, I have always wanted to be involved in the recording of a podcast and now that time has finally come. What makes the Driven2Distraction podcast different from all the others out there is its uniquely South African flair. It’s focus is towards Software Development in the Southern Africa – and has a mix of “what happening locally” ......
I recently accepted to do a review of “The Learn Microsoft Visual C# book 2010” by John Paul Mueller. I was in two minds on whether I really wanted to read this book – in it’s description it says it is targeting fundamentals of modern programming with Visual C#, but I wasn’t sure how fundamental it would be and since I have been working with C# for a while now, I wasn’t sure if it would be worth my while. After going through a few of the chapters of the book I would say this really targets very basic ......
Every now and then I go to Tiobe to see their ratings on the popularity of programming languages. Usually there is nothing exciting out there, just a few small moves of languages so I was interested to see in December Tiobe had a headline of C++ about to be dethroned by C# Looking at the stats, sure enough, according to Tiobe C# is on the verge of taking the number 3 spot. It will be interesting to see what happens when Windows 8 hits the market with what seemed to be a revival of C++ during Microsoft’s ......
I have been looking into InRule, a business rule management system (BRMS) from InRule Technology, recently and thought I would do an intro blog on it. I have worked with business rule engines before and from past experience have developed my own list of priorities on what I feel are the most important aspects. Here they are… Priority 1 - Reduce the cost of change For me, one of the primary reasons for implementing a business rules engine is because you are expecting change and want to reduce the ......
A friend of mine works for a large bank… about a year and a half ago they needed a new system developed for their division. They went through the normal process of using one of the recommended service providers to develop the system and this was their experience, which is still typical with most institutions I know… For the first few months development of the system seemed to be progressing along fine. They had meetings, business analysts put things on paper and the developers nodded their heads ......
Today I had an issue with Jenkins where I wanted it to perform a set of tasks, but not worry about the exit code of any of the tasks…. In my instance I was using Jenkins to run DotCover to check the code coverage of a solution and then run a custom application to make sure the coverage was sufficient….The challenge I was facing that for DotCover to generate coverage statistics, it would need to run NUnit. If a test in NUnit failed for some reason, regardless of the the total coverage of the tests ......
I have recently been using NDbUnit for integration tests exercising the database. I am new to the tool, so the following exception caused a few hours of scratching my head before I figured out the obvious. Assume you are going through the quick start guide from the website, everything works perfectly. Then I changed to my production database and did the same thing and I get the following error…] DbCommandBuilder.CreateSele... string) failed for tableName = '…. Turns out the name of ......
I am not the fastest typist… I know it. Up till about a year ago I was a two finger typist and my two fingers could fly over the keyboard doing all sorts of acrobatics getting me up to a whopping 30 odd words per minute. Not bad for two fingers but barely close to some of my friends who speed away at 90+ words a minute using both hands. So it bugged me…. I mean I would like to consider myself a professional developer and feel that if I will be typing most of days then I should at least be doing it ......
I recently was going over a great book called “Dependency Injection in .Net” by Mark Seeman. So far I have really enjoyed the book and would recommend anyone looking to get into DI to give it a read. Today I thought I would blog about the first example Mark gives in his book to illustrate some of the benefits that DI provides. The ones he lists are Late binding Extensibility Parallel Development Maintainability Testability To illustrate some of these benefits he gives a HelloWorld example using DI ......
The following sections are covered in the Interaction Design book – the sections in blue are examinable for 2011, the sections in pink are not examinable. A brief example of questions to be expected in the Exam Below are some example questions extracted from previous exam papers and assignments…. I have outlined just the basic section headers, you will need to be able to expand on these… Define Interaction Design (Chapter 1) Interactive Design is the process of designing interactive products to support ......
A while back read a book called the “pragmatic programmer”. Great book and I highly recommend – A section in the book was titled “Power Editing” and a suggestion they made was to have one editor. The motivation being that it is better to know one editor very well, and use it for all editing tasks: code, documentations, memos, etc. I buy into this concept – up to this point I work primarily in Visual Studio and do any other text editing in notepad or programmers notepad and while I have been able ......
Aims of this Chapter Consider what doing interaction design involves Explain some advantages of involving users in development Explain the main principles of a user-centred approach Ask and provide answers for some important questions about the interaction design process Introduce the idea of a lifecycle model to represent a set of activities and how they are related Describe some lifecycle models from software engineering and HCI and discuss how they relate to the process of ID Present a lifecycle ......
Aims of this chapter Describe different kinds of requirements Enable you to identify examples of different kinds of requirements from a simple description Explain how different data gathering techniques may be used during the requirements activity Enable you to develop a scenario, a use case, and an essential use case from a simple description Enable you to perform hierarchical task analysis on a simple description Summary What, How and Why The process works in a cycle.. Why bother? The importance ......
Aims of this chapter Explain what expressive interfaces are and the effects they can have on people Outline the nature of user frustration and how to reduce it Describe how technologies can be designed to change people’s attitudes and behaviour Debate the pro’s and con’s of applying anthropomorphism in interaction design Describe the affective aspects used in interface agents and interactive physical toys Present models and frameworks of affect that can be applied to interaction design Enable you ......
Aims of Chapter 1 Explain the difference between good and poor interaction design Describe what interaction design is and how it relates to human-computer interaction and other fields Explain what is meant by the user experience and usability Summary Good and Poor Interaction Design The following examples were used to illustrate good and poor design. Voicemail system Remote control A key question for interaction design is how do you optimize the user’s interactions with a system, environment, or ......
In the closing keynote at TechEd Africa 2011, Clifford de Wit (Microsoft South Africa) made improvements on his previous years attempt to geekily give away a prize, but unfortunately still got it wrong… here’s why. At Teched 2010 Clifford gave away an amazing prize of a wheel barrow full of tech goodies – if my memory serves me right, it included a laptop, xbox, kinect as well as a whole bunch of other fun stuff – a geeks delight. Unfortunately he was given some flack on how he decided to pick the ......
With TechEd Africa starting in two days time I thought I would briefly blog about two useful extensions I use for VS2010 when presenting. They are Presentation Zoom by Chris Granger ZoomEditorMargin by Benjamin Gopp The Presentation Zoom extension creates a global zoom level so that if you zoom a single window, all editor instances will be updated to that zoom level. Before I had this extension I had a few circumstances where I was not aware of the resolution restrictions of the projector until 5 ......
In the last few weeks I have had the pleasure of familiarising myself with various async patterns in C#. After going through the different approaches one gets a feel for how far we have come since the .Net 1 days. One particular pattern that I was not familiar with implementing but which has been available since the beginning of .Net is what I call the Async Begin / End Pattern. Since my interest is really making calls asynchronously so that I don’t block the UI thread - from what I can tell this ......
I have dabbled in async programming in the past but never put any real effort into understanding how things worked. With the new async features in .Net 5 I thought I would give it a look. Here is a quick example of one of the features you can expect in the new framework and how it can make our life easier. The best way to illustrate this is to make a simple WPF application as follows… In the past If we had the following small WPF application with just one window / form… The XAML code for the window ......
It has been several months since I originally got my Omnia 7 phone. You can read about my first impressions of the phone – after actually using the device for a few months I have begun to enjoy it, but a few times I felt that I was missing out on something. My biggest gripe on why I felt the device would not gain traction in the South African market was mainly due to market place problems (being South Africa we could not buy apps). The Upgrade Experience Two days ago when a message on my phone popped ......
Today we did the marshmallow challenge. For those that are not familiar with this challenge, it is a fun way to get teams to experience simple lessons in collaboration, innovation and creativity (that’s what their website says) and I would agree with them. So the exercise works as follows… You are given 20 sticks of spaghetti one yard tape one yard string one marshmallow The purpose Build a structure that is as high as possible with the marshmallow at the top within 18 minutes that does not collapse ......
I was really excited when I heard Red Gate wanted a review of their memory profiler done. I have been a fan of Red Gate products for years… being first exposed to their products via reflector a few years ago – as someone who has never done memory profiling before, I was also excited to go a bit deeper into .Net memory management. Why Memory Profiler – Isn’t the point of .Net that it manages the memory for you? Before getting into the nuts and bolts of the profiler, you might ask yourself – why use ......
So, it took a bit of time to arrive, but 2 weeks ago I received my GWB Influencers shirt in the mail. Perfect timing for my talk at Dev4Devs at Microsoft ......
I recently obtained a Samsung Omnia 7 with the WP7 OS. Straight off the bat - let me say how impressed I am with this phone and how easy it is to use. It took about 3 minutes to have all my Gmail and Facebook contacts loaded and merged and be connected to the Wifi. Another huge plus is the Zune software.This absolutely beats the ITunes for Windows software hands down when it comes to podcasts. Other pluses included the screen being so bright and the physical size of the phone which is comfortable ......
I have always been slightly confused about the difference between classes and structures in C#. For many years, structures seemed identical to classes, but were simply not as extensible. Recently I had a relook at them and came up with two key identifying features that help me differentiate the two.. Where they are stored Value and Reference values So, the first main difference for me is that structure instances are stored on the stack and class instances are stored on the heap. The second main difference ......
I recently acquired a Samsung Omni 7 with the Windows Phone 7 OS installed. With this device I have a new found desire to learn Windows Phone 7 programming and embarked on the endeavour by reading “Programming Windows Phone 7” by Charles Petzold (ISBN 978-0-7356-4335-2). I really enjoyed going through the book. While the one I was reading had a few spelling mistakes in it (not that I am one to point any fingers) I am sure they had been rectified before it went to print (I was reading the free ebook). ......
In my quest to read all the books I have lying on my bookshelf I have finally got round to finishing C# Concisely (ISBN 0-321-15418-5). While this book was fairly old, I found it to be quite useful for a student wanting to learn C# for the first time, and a nice way to review and make I hadn’t missed something when I was learning the language. The book is simple and explains the basic concepts in a clean manner, but is really intended for the beginner programmer – it also had a few chapters dedicated ......
The Problem The following iterative sequence is defined for the set of positive integers: n n/2 (n is even) n 3n + 1 (n is odd) Using the rule above and starting with 13, we generate the following sequence: 13 40 20 10 5 16 8 4 2 1 It can be seen that this sequence (starting at 13 and finishing at 1) contains 10 terms. Although it has not been proved yet (Collatz Problem), it is thought that all starting numbers finish at 1. Which starting number, under one million, produces the longest chain? NOTE: ......
This was probably one of the easiest ones to complete – a quick bash got me the following… The Problem n! means n (n 1) ... 3 2 1 For example, 10! = 10 9 ... 3 2 1 = 3628800, and the sum of the digits in the number 10! is 3 + 6 + 2 + 8 + 8 + 0 + 0 = 27. Find the sum of the digits in the number 100! The Solution private static BigInteger Factorial(int num) { if (num > 1) return (BigInteger)num * Factorial(num - 1); else return 1; } private static BigInteger SumDigits(string digits) { BigInteger ......
It has been a while since I have attempted a project Euler problem, mainly because of university exams taking up the majority of my spare time, but today I managed to spare a few minutes to make an attempt at problem 11. The Problem In the 2020 grid below, four numbers along a diagonal line have been marked in red. 08 02 22 97 38 15 00 40 00 75 04 05 07 78 52 12 50 77 91 08 49 49 99 40 17 81 18 57 60 87 17 40 98 43 69 48 04 56 62 00 81 49 31 73 55 79 14 29 93 71 40 67 53 88 30 03 49 13 36 65 52 70 ......
So, a morning of bashing my head an a new found appreciation for .Net… Today I had to do some legacy app programming in vb6… The issue we were trying to resolve was that we had an application sending emails via the MAPIMessages library. Everything worked fine in Windows XP, but if the user ran the same program in Windows 7 you would get a Runtime error ‘32002’. After a fair amount of searching on the internet I got several conflicting reasons as to why this was “crashing”. To save those other poor ......
Ever since I began programming in c++ I have gotten confused with how pointers work. I understand why they are there and why they can be useful, but in my managed world I really don’t like touching them… That being said, tomorrow I am going to be tested on pointers and so I thought I would brush up.. here is a bit of sample code on some basic uses… #include <iostream> using namespace std; int main(int argc, char *argv[]) { int x = 5; int *y = &x; int *z = y; cout << "x value : " << ......
I have been doing a rushed brush up on my contemporary concepts programming course – only to encounter more design patterns… so as revision I have listed some details below… Today I am going to briefly cover 5 design patterns… namely: Composite Pattern Observer Pattern Serializer Pattern Monostate Pattern Command Pattern What are Design Patterns? (see wiki) In programming we come across problems that are very similar, and certain approaches to solving these problems could be applied time and time ......
Below is a summary of notes for the exam. Before these will make sense you will have to go through the study material, so this is more just a quick revision summary. Format for Declaring a Recursive Statement You will be asked to compile a recursive definition for some language. In the textbook examples the language was a number based language, but in all the past exams the language has been a text based language so be careful… You will be asked to state 4 things, Universal Set Generators of Language ......
Introduction I don’t do web programming… I have been programming client applications for years and consider myself a WPF/Silverlight developer. The web thing always seemed a bit scary in its stateless environment with limited functionality and cross browser headaches. That was until recently when apparently HTML5 was going to kill Silverlight and I eventually decided that I would need to get educated and up to date. Since that decision I have re-accustomed myself with HTML, CSS & JavaScript. ......
I had a good laugh this morning when going through a legacy app of a project a friend of mine had developed. I think only a programmer may find this is funny. Random Moo’s ......
So, these are a little late, but I was glad to see that Dave put up some of the pics from DevIdols 2010 at TechEd Africa. The winner of the competition was William Brander who did a great presentation. Jayd and myself got runners up titles. Below is a pic of Jayd, Brendon & Myself (wearing my GeeksWithBlogs shirt) after the final ......
With MIX2011 starting today I thought it was quite ironic that I have spent the last few days watching MIX2010 (I guess that means I am at least a year behind the world ). One of the presentations that I really enjoyed had very little to do with programming, but I found extremely entertaining and almost immediately useful. It was title “The Art, Technology, and Science of Reading” and was presented by Kevin Larson who works in Microsoft’s Advanced Reading and Technology team. So, if you have the ......
I have been busy refactoring a legacy application where there are numerous blocks of code that are identical. To make the code more readable I wrote a sub function that performed the block of code and then I wanted Visual Studio to parse may file and replace any occurrence of that block of code with a new string. Originally I got stuck as it seemed VS2010 only allowed a single line replace, however after a bit of searching I found out that thankfully it does support multiline replace, it is just ......
In February I did a post about moving to DiscountASP.Net TFS Hosting from SVN. I promised to give some feedback a few months later to say how we were finding it. Well, it has been 2 months and no headaches yet. So far we have been running 5 projects on TFS on DiscountASP.Net service with work items / bug items and web access and the service has been 100% stable. So good job DiscountASP.Net If anyone is interested in finding out more about their hosting solutions I am quite happy to give them a plug ......
One of the challenges one faces when doing multi language support in WPF is when one has several projects in one solution (i.e. a business layer & ui layer) and you want multi language support. Typically each solution would have a resource file – meaning if you have 3 projects in a solution you will have 3 resource files. For me this isn’t an ideal solution, as you normally want to send the resource files to a translator and the more resource files you have, the more fragmented the dictionary ......
The Past A few years ago my small software company made the jump from storing code on a shared folder to source code control. At the time we had evaluated a few of the options and settled on Tortoise SVN. The main motivation for going the SVN route was that we found a great plugin for Visual Studio that allowed us to avoid the command prompt for uploading changes (like I said we are windows programmers… command prompt bad!! ) and it was free. Up to now we have been pretty happy with SVN as it removed ......
Today I thought I would go back in time and have a look at the DEBUG command that has been available since the beginning of dawn in DOS, MS-DOS and Microsoft Windows. up to today I always knew it was there, but had no clue on how to use it so for those that are interested this might be a great geek party trick to pull out when you want the awe of the younger generation and want to show them what “real” programming is about. But wait, you will have to do it relatively quickly as it seems like DEBUG ......
Today I got to play with NASM. This is an assembler and disassembler that can be used to write 16-bit, 32-bit & 64-bit programs. Let me say upfront that the last time I looked at assembly code at any depth was when I was studying Computer Science in Pietermaritzburg – ten years ago – and we never ever got to touch any real assembly code so a lot of what I am looking at today is very new to me. The first thing I did was download NASM compiler. This turned out to be a bit more complicated than ......
So this is a totally selfish post. I continually forget how to setup my 3g modem in South Africa and it takes forever to get in touch with someone on their helpline, so I eventually recorded on youtube for future reference ......
Recently I read a post by someone who felt the Microsoft MVP program had failed. My local experience with the MVP program would tend for me to disagree. On Saturday I attended a free Windows Phone 7 event organized by Robert MacLean and Rudi Grobler both of whom are local MVP’s. First of all, kudos to them for organizing the event which included a free lunch and flash stick and had some great content for a free event. Secondly, this is not the first time that either of these two MVP’s have organized ......
A while back I purchased a RFID scanner that could be connected to a PC and programmed via VS. It was a fun purchase an though the import duties nailed me, I was glad to get the little gadget. Last night while listening to .Net Rocks I heard of another company that sells similar components for .Net Micro. Check out their websites…. TinyClr GHI Electronics .Net Micro Website Trossen Robotics ......
We have been using LogicNP’s CryptoLicensing for some of our software and I was battling to understand how exactly the whole process worked. I was sent the following document which really helped explain it – so if you ever use the same tool it is well worth a read. Licensing Basics LogicNP CryptoLicensing For .Net is the most advanced and state-of-the art licensing and copy protection system you can use for your software. LogicNP CryptoLicensing System uses the latest cryptographic technology to ......
So, I have been pretty quiet for the last month or so. True, it has been holiday time and I went to Cape Town for a stunning week of sunshine and blue skies, but the second I got back home I spent the remainder of my holiday on my pc viewing tutorials on www.tekpub.com Craig Shoemaker, who I got in contact with because of his podcast, sent me a 1 month free subscription to the site and it has been really appreciated. I have done a lot of WPF programming in the past, but not any asp.net stuff and ......
Found this great website for F# code snippets here.
So my UNISA exams are over for the year – and I can finally dedicate some time to professional learning. Since my last development blog post I have had the opportunity to be exposed to some great technologies that I would like to learn more about, so here’s the plan… Continue my exploration of F# and finish reading Expert F# Learn Blend, partly because I feel it is a great tool that exposes some of the real power of XAML Do a few blog posts on my .Net Based RF Reader Explore some more design principles ......
So, I recently put up a post on using the MMMPack tool to help package old VB6 projects so that they work in Vista and Windows 7. I am a real fan of this tool because it saves me a ton of time.\ Recently though I needed to re-setup my machine to get the whole thing working properly and came across a few little gremlins that come with beta products. So I downloaded the latest MMMPack from their website and when using the tool on my project I got the following error. “Application has failed to start ......
So I have put up the slides from my ten minute presentation on 1 best practice in F# up for anyone who wants them. Also find a link to Bart De Smet’s presentation on Functional Programming ......
So it has been a great few days at TechEd South Africa. There were a few things that stood out. First of all, I couldn’t help but be inspired by Tim Huckaby’s presentations. While they were not technically deep, they gave me a sense of something to strive for. There were a few times during his presentation that I found myself saying in my mind - “Man, we can do that stuff, if only we had the budget”. Well, I guess that isn’t an excuse and so I feel like the bar has been raised from a UI point. Other ......
Outcomes of the Section (Atomic Sentences) Understand the concept of formal first-order languages Know the syntax of FOL: predicate symbols, individual constants, function symbols. Get acquainted with examples of first-order languages: the blocks language, the language of arithmetic (Logic of Atomic Sentences) Understand logical validity of arguments Know how to show that arguments are valid Understand the basic properties of the identity predicate: reflexivity, principle of the substitutability ......
Any ramblings and blog posts associated with the UNISA COS 261C tag should be considered study notes for my lectures... Today I managed to start my revision for my Unisa Formal Logic 2nd Year Subject. It has been more than a semester since I did the original work and I have less than 30 days before the actual exam. Below is an outline of the subject material as well as any exam related material for the subject. Outline of Subject There will be 2 sections to the subject… Propositional Logic Quantifiers ......
So, the last few days I have been finishing my summaries of my Programming Contemporary Concepts course. While it has been interesting being exposed to a new programming language, I found the actual course a bit framework specific, and not to contemporary at all. Needless to say, in the quest for the qualification I am going to put this aside and slog along. Question 1 of Assignment 3 asks us to write a template Queue<T> class and client code to test it. I will be attempting it in QT4 using ......
Any ramblings and blog posts associated with the UNISA ICT 2622 tag should be considered study notes for my lectures… Objectives of Chapter 17 Explain the foundations for the adaptive development methodologies List and describe the features of the Unified Process system development methodology List and describe the features of Agile Modelling Compare and contrast the features of Extreme Programming and Scrum development Explain the importance of Model-Driven Architecture on enterprise-level development ......
Saw this great little video on F# that Richard Minerich posted on facebook, worth a look… ......
A while back I looked into localising a WPF application. Because I prefer the MVVM application I wanted something that I could apply to the UI layer specifically in XAML. At the time I found a post on Codeplex that allowed me to achieve this, but when we moved from VS2008 to VS2010 it broke the whole system. I am glad to see that an update to this tool is now available here <Update> After speaking to my friend Brendon he pointed me to another post about the same topic… http://compositeextensions.... ......
In part 1 of Crack .Net Applications I demonstrated how easy it was to reverse engineer an an unprotected .Net application. In this post my aim is to highlight a few techniques that one can employ to protect ones code from this type of hacking. So, my take on software protection is that one can never be 100% protected – given infinite time you can guarantee someone with enough intelligence will be able to bypass all security measures that you ever implement – that being said, we don’t have infinite ......
A few months ago I attended a local user group meeting that focussed on software security. The presenter demonstrated several techniques that one could employ to bypass software security and several “tricks of the trade” that one could implement to make ones software more secure. The presentation rekindled the fire I had for a little research project that I had attempted several months earlier on reverse engineering .Net applications but that at the time I had lost interest in after an hour of unsuccessful ......
So the first question took sometime, partly because I was getting used to c++ again, and partly because of the way VS2008 works with QT. Anyhow, question 2 was dramatically easier. The Question… Write an application,similar to the one in Section 9.3,but that has four buttons. The first one, labelled Advice,should be connected to a slot that randomly selects a piece of text (such as a fortune cookie) and displays it in the QTextEdit window. The second one, labelled Weather,randomly selects a sentence ......
If anyone has been following my blogs lately, they would have noticed that they just had random rumblings of book summaries for my CS degree. This is actually the first semester where I am battling to keep up with the level of work – possibly because up to now the courses have been rather easy to complete the class work (multiple choice), and possibly because work work has gotten extremely busy which has left me with only one day a week (Saturday) to dedicate to learning and doing my assignments. ......
Any ramblings and blog posts associated with the UNISA COS 2144 tag should be considered study notes for my lectures... This chapter examines the QObject, which is an important class to become familiar with and one from which all Qt Widgets are derived. Questions for this Section What does it mean when object A is the parent of object B? What happens to a QObject when it is reparented? Why is the copy constructor of QObject not public? What is the composite pattern? How can QObject be both composite ......
Any ramblings and blog posts associated with the UNISA COS 2144 tag should be considered study notes for my lectures... This chapter introduces the concepts and shows some examples of how to define inheritance relationships between c++ classes, overriding methods, the vritual keyword, and simple examples show how polymorphism work. Questions for this Section What is inheritance for? Explain polymorphism. What is it? How can you use it? Explain the difference between dynamic binding and static binding? ......
Any ramblings and blog posts associated with the UNISA ICT 2622 tag should be considered study notes for my lectures... Objectives of Chapter 12 Explain the different types of objects and layers in a design Develop a sequence diagram for use case realization Develop communication diagrams for detailed design Develop updated design class diagrams Develop multilayer subsystem packages Explain design patterns and recognize various specific patterns Key Words & Definitions use case realization – ......
Any ramblings and blog posts associated with the UNISA ICT 2622 tag should be considered study notes for my lectures... Objectives of Chapter 11 Explain the purpose and objectives of object-oriented design Develop package diagrams and component diagrams Develop design class diagrams Use CRC cards to define class responsibilities and collaborations Explain the fundamental principles of object-oriented design Key Words & Definitions instantiation – creation of an object based on the template provided ......
Well after a hectic week of work and studying I eventually had some me time… today I thought I would attempt Euler Problem 16. The Problem 215 = 32768 and the sum of its digits is 3 + 2 + 7 + 6 + 8 = 26. What is the sum of the digits of the number 21000? The Solution So I thought I would get to concerned about length of code, but rather focus on implementing several practices that I have learnt in the last couple of weeks, namely tail recursive functions and composite functions… I initially broke ......
I admit it… I am a software podcast junkie – it started with Dot Net Rocks, and has progressed till I now listen to more than a dozen podcasts actively, but what I am finding more and more is that the general .Net podcasts seem to all follow the flavour of the month posts… So this week everyone is talking about LightSwitch, last week it was Windows Phone 7, before that Azure… all flavours of the month, all introducing new things, and usually some high level 10000 meter view of a new technology… So ......
Any ramblings and blog posts associated with the UNISA ICT 2622 tag should be considered study notes for my lectures... Objectives of Chapter 8 Prioritize the system requirements based on the desired scope and level of automation for the new system Describe the strategic decisions that integrate the application deployment environment and the design approach for the new system Determine alternative approaches for system implementation Evaluate and select an implementation approach based on the needs ......
Any ramblings and blog posts associated with the UNISA ICT 2622 tag should be considered study notes for my lectures... Objectives of Chapter 7 Understand the models and processes of defining object-oriented requirements Develop use case diagrams and activity diagrams Develop system sequence diagrams Develop state machine diagrams to model object behaviour Explain how use case descriptions and UML diagrams work together to define functional requirements for the object oriented approach Key Words ......
Any ramblings and blog posts associated with the UNISA ICT 2621 tag should be considered study notes for my lectures... Objectives of Chapter 6 Explain how the traditional approach and the object oriented approach differ when modelling the details of a use case. List the components of a traditional system and the symbols representing them on a data flow diagram. Describe how data flow diagrams can show the system at various levels of abstraction Develop data flow diagrams, data element definitions, ......
A few months ago I had a really frustrating debate with my younger brother. He had come up to JHB to come for a visit and we decided to talk about programming. Of course I thought I would put a good pitch in for F#, but just couldn’t seem to do it any justice. Eventually his point was as follows - “What really is the difference between declaring a functional solution vs an iterative solution. Sure, in F# you have something like the Seq.map function, but isn’t it just a shorthand for a for loop or ......
Any ramblings and blog posts associated with the UNISA ICT 2621 tag should be considered study notes for my lectures... Please note this chapter is also covered in ICT2622 – Object Orientated Analysis Objectives of Chapter 5 Understand why identifying use cases is the key to defining functional requirements Use three techniques for identifying use cases Write brief, intermediate, and fully developed use case descriptions Explain how the concept of things in the problem domain also define requirements ......
So today I had the pleasure of attempting Euler Problem 10… the problem goes as follows… The Problem The sum of the primes below 10 is 2 + 3 + 5 + 7 = 17. Find the sum of all the primes below two million. The Solution What I enjoyed about this problem is that if you have done the previous Euler problems, then this problem is really just a focus on pure performance as the other aspects of the problem have in essence been solved before. Not that I have found an optimal solution, in fact I was very ......
So I am not a web developer! I have never been one but Silverlight keeps popping in my head as the next big thing on the Microsoft stack and I would hate to “miss the boat” (I am sure some C developer said that 10 years ago as well). Today I thought I would get a little wet with Silverlight & WCF. Up to now I have been working in WPF so I am not scared of XAML and am surprised to say that I actually enjoy it. I have however never worked with WCF so for me that will be the learning curve. My project ......
“prefer active patterns over multiple when guards” In line with my previous posts on 5 best practices for F# from Daniel Mohl’s slideshow, over the last few days I have been learning about active patterns. The exact best practice is to prefer active patterns over multiple “when” guards during pattern matching and in this post I am going to try and compare the two techniques and then also explain some of the basics of active patterns and why it is called active. Now before I go any further, let me ......
Another day flown by… another Euler problem to tease me… today I attempted problem 9. The Problem A Pythagorean triplet is a set of three natural numbers, a < b < c, for which a^2 + b^2 = c^2 For example, 3^2 + 4^2 = 9 +16 = 25 = 5^2. There exists exactly one Pythagorean triplet for which a + b + c = 1000. Find the product abc. The Solution Initially I thought I would try and tackle this problem by setting up 3DArrays in F#, thus my question on StackOverflow regarding 2D Array. However, if ......
Any ramblings and blog posts associated with the UNISA ICT 2621 tag should be considered study notes for my lectures... Objectives of Chapter 1 Explain the key role of a system analyst in business. Describe the various types of system and technology an analyst might use. Explain the importance of technical skills, people skills and business skills for an analyst. Explain why ethical behaviour is crucial for a system analyst’s career. Describe various job titles in the field and places of employment ......
Any ramblings and blog posts associated with the UNISA COS 2144 tag should be considered study notes for my lectures... In this chapter they discuss the essentials of function declarations, prototypes, and signatures; overloading functions; function call resolution; default/optional arguments; temporary variables and when they’re created; reference parameters and return values; and inline functions… Function Declarations Each function has… A name A return type (which may be void) A parameter list ......
In line with Daniel Mohl’s presentation, the third best practice for F# is Tail Recursive Functions. I must admit, while I did go over recursion several years ago, I never heard (or possibly ignored) any mention of tail recursive functions… so what exactly is a tail recursive function? I posed the question on Stack Overflow and got some great examples and responses… Possibly the best explanation came from a post done by Chris Smith entitled Understanding Tail Recursion. Basically, non tail recursive ......
Any ramblings and blog posts associated with the UNISA COS 2144 tag should be considered study notes for my lectures... This chapter introduces the QT development environment, including the compiler, linker, make, and qmake. It includes a first example using Qt, and introduces iterators and lists. The chapter itself was fairly short – it mainly covered a basic equivalent to “hello world” and how to build projects. One section that I did find interesting was the section on the #include #Includes – ......
So today I finally got around to playing a bit more with Silverlight. F# has been taking most of my spare time and I felt I needed to branch out into something different for a day or two… Now, before I go into this post… my disclaimer… I am a Silverlight noob – in fact I have focussed most of my development time at normal applications so the whole internet is a bit of a mystery to me… that being said I had some very definite goals for this posting… Setup my server so that it would work with the services ......
These last few days I attempted Euler Problem 7. It has been an interesting experience since it is the first real Euler problem that I initially attempted to tackle recursion for a solution but eventually bypassed as I found what I considered a simpler way to solve the problem. In addition to recursion, it was also interesting to see performance issues occur, and how a better understanding of what some of the Seq functions does can dramatically effect the over all performance of the solution. The ......
Any ramblings and blog posts associated with the UNISA COS 2144 tag should be considered study notes for my lectures... Chapter 2 This chapter covered an Introduction to classes and objects, and How member functions operate on objects. UML is introduced. Static and const members are explained. Constructors, destructors, copy operations, and Friends are discussed. Class Definitions Section 2.1 & 2.2 briefly covered structs and classes. While these are age old… in case I ever forget. A struct takes ......
Today I was doing some work work and kept having to parse a log file. After a few hours of doing the same routine stuff I thought I might try and automate it using F#. It was depressingly simple to achieve… Example Extract of Text File *ERROR* : Drawing num {^BASE^2 }783, surface num 1 uses invalid real colour number 2 _warning_ : The base file has 171 DLT types, the main file has 126. _warning_ : AutoPlan error: There are no base corner units with autoplan 30 (see theme *ERROR* : Drawing num {^BASE^2 ......
I had the following code snippet… #light open System let ExeC = printfn "c" 3 let ExeB b = printfn "b" 2 let ExeA = printfn "a" 1 printfn "Example %d " ExeA printfn "Example %d " (ExeB 1) printfn "Example %d " ExeC Console.ReadLine() With the output as follows… c a Example 1 b Example 2 Example 3 Initially the execution of the code seemed unusual… up to now I would have expected ExeC, ExeB & ExeA to all be functions, but a previous comment from Brian indicated that there was a difference. StackOverflow ......
So I have mentioned lazy functions before, in particular related to sequences, however I came across it again – but this time with lazy values and thought I would explore it a little bit more… I used the following code snippet… #light open System let lHelloWorld = lazy(printfn "Lazy Hello World"; 30+30) let aHelloWorld = (printfn "Active Hello World"; 30+30) printfn "lazy value is %d" lHelloWorld.Value printfn "lazy value is %d" lHelloWorld.Value printfn "active value is %d" aHelloWorld printfn "active ......
I had a bit of a no brainer yesterday… I have been using the forward pipe to convert values, and came up against the problem where the following code would work let IntToFloat = 10 |> float let FloatToInt = 10.0 |> int But the equivalent bigint code would not work… let FloatToBigint = 10.0 |> bigint It was only after a few hours of reading up on type casting in F# and getting totally confused that I finally resulted to Stack Overflow. The answer was humbling… The reason why FloatToBignint ......
Okay… don’t judge me… I have been coding in C# for a few years now and up till the point that I got into F# I never used lambda’s. This last week I realized just how much I am using the lambda expression in F# and thought it was about time I exposed myself to it in C#… So first of all, the lambda expression in C# is symbolized by the =>. From what I understand it is really syntactical sugar over the C# language to anonymous delegates, which have been in the language for sometime. I am not going ......
So I must admit, the first time I saw it I scratched my head and thought to myself, why will I ever use that? Several months since then and now I love the Forward Pipe (FP) in F#. Why? For me, the the FP makes me think of a problem in a different way. In C# when I attempt to solve I problem I typically break it down in steps, once I have reached the end result I have my smallest step, and then I work my methods backwards so that I can get back to the original input… in a very real way it makes me ......
Today I had a quick bash at problem 6. To me this has been the easiest of the problems so far. It is the first time though that I got to use the Seq.Fold function which was good to get exposure to. I am not to happy with my code though, I can’t explain it, but it just seems a bit messy… Anyhow, I look forward to feedback from everyone in the F# community on their approaches. Problem The sum of the squares of the first ten natural numbers is, 12 + 22 + ... + 102 = 385 The square of the sum of the ......
As per the post I decided to do a F# attempt at FizzBuzz. It took a few seconds… Using FizzBuzz to Find Developers who Grok Coding.. let FizzBuzz = seq {1..100} |> Seq.iter (fun x -> match x with | x when x % 5 = 0 && x % 3 = 0 -> printfn "FizzBuzz" | x when x % 3 = 0 -> printfn "Fizz" | x when x % 5 = 0 -> printfn "Buzz" | _ -> printfn "%d" x) ......
So today I tackled a Euler problem that I had originally looked into several months back when I initially started exploring F# Problem 2520 is the smallest number that can be divided by each of the numbers from 1 to 10 without any remainder. What is the smallest positive number that is evenly divisible by all of the numbers from 1 to 20? Solution I decided on the brute force approach again. I believe that I could have worked with prime factors etc to have reached the solution a lot quicker – but ......
The last few days I began to play around with problem 4 of Euler. I really enjoyed this problem since it dealt with a few functions in F# that I haven’t dealt with in the past. Problem A palindromic number reads the same both ways. The largest palindrome made from the product of two 2-digit numbers is 9009 = 91 99. Find the largest palindrome made from the product of two 3-digit numbers. Solution So I divided the problem up into a few functions… reverseString simply reverses a string. isPalindrome ......
So I have been playing around with more Euler problems and I have found it a great way to learn some of the basic functions of F# and Seq specifically. The more I play the more I am really loving F# and how succinct the language is. Today I thought I would put up a brief post on the Seq.unfold function. So, I see this function being used everywhere… my understanding of it is that it is a way that one can build a sequence based on a series of commands. I will use a small code snippet to show an example ......
So this weekend I made an attempt at problem 3 of Project Euler. Problem 3 The prime factors of 13195 are 5, 7, 13 and 29. What is the largest prime factor of the number 600851475143 ? My Solution // // Checks whether a number is prime or not using the Trial Division approach // To improve performance I have only pass through odd numbers greater than 2 and do not check for this case // let isPrime (number : bigint) = match number with | _ -> seq { bigint(2) .. bigint(1) .. bigint (Math.Sqrt (float ......
Today I thought I would give a bash at problem 2 of Euler. Problem 2 Each new term in the Fibonacci sequence is generated by adding the previous two terms. By starting with 1 and 2, the first 10 terms will be: 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, ... Find the sum of all the even-valued terms in the sequence which do not exceed four million. My Solution (Brute Force) So first of all I needed a Fibonacci generator. I resorted to one that recursively defines the Fibonacci number based on the index with ......
Every now and then I give project Euler a quick browse. Since I have been playing with F# I have found it a great way to learn the basics of the language. Today I thought I would give problem 1 an attempt… Problem 1 If we list all the natural numbers below 10 that are multiples of 3 or 5, we get 3, 5, 6 and 9. The sum of these multiples is 23. Find the sum of all the multiples of 3 or 5 below 1000. My F# Solution I broke this problem into two functions… 1) be able to generate a collection of numbers ......
I did a recent post on implementing WPF with F#. Today I would like to expand on this posting to give a simple implementation of the MVVM pattern in F#. A good read about this topic can also be found on Dean Chalk’s blog although my example of the pattern is possibly simpler. With the MVVM pattern one typically has 3 segments, the view, viewmodel and model. With the beauty of WPF binding one is able to link the state based viewmodel to the view. In my implementation I have kept the same principles. ......
I was listening to Dot Net Rocks show #560 about F# and during the podcast Richard Campbell brought up a good point with regards to F# and a GUI. In essence what I understood his point to be was that until one could write an end to end application in F#, it would be a hard sell to developers to take it on. In part I agree with him, while I am beginning to really enjoy learning F#, I can’t but help feel that I would be a lot further into the language if I could do my Windows Forms like I do in C# ......
This evening I had the pleasure of reading one of ThomasP’s blog posts on first class events. It was an excellent read, and I thought I would make a brief derivative of his post to explore some of the basics. In Thomas’s post he has a form with an ellipse on it that when he clicks on the ellipse it pops up a message box with the button clicked… awesome. Something that got me on the post though was the code similar to the one below… // React to Mouse Move events on the form let evtMessages = frm.MouseMove ......
Today I had a few minutes in the evening to go over my original Adam and Eve code… what I wanted to see tonight was if I could optimize the code any further… which I was pretty sure could be done. Ultimately what I wanted to find from the experiment was a balance between optimized code an reusable code. On the one hand I can put everything into a single function and end up with a totally unusable function that is extremely compressed, which would have big comebacks when making modifications at a ......
So I am loving my Expert F# book. I wish I had more time with it, but the little time I get I really enjoy. However today I was completely stumped by what the book was trying to get across with regards to pattern matching. On Page 38 – Chapter 3, it briefly describes F# option values. On this page it gives the code snippet along the code lines below and then goes on to speak briefly about pattern matching... open System type 'a option = | None | Some of 'a let people = [ ("Adam", None); ("Eve", None); ......
Going back to my old c++ days at university where we had all our code littered with preprocessor directives - I thought it made the code ugly and could never understand why it was useful. Today though I found a use in my C# application. The scenario – I had made various security levels in my application and tied my XAML to the levels by set by static accessors in code. An example of my XAML code for a Combobox to be enabled would be as follows… <ComboBox IsEnabled="{x:Static security:Security.SecurityC... ......
Up to now I have been looking at F# for modular solutions, but have never considered writing an end to end application. Today I was wondering how one would even start to write an end to end application and realized that I didn’t even know where the entry point is for an F# application. After browsing MSDN a bit I got a basic example of a F# application with an entry point [<EntryPoint>] let main args = printfn "Arguments passed to function : %A" args // Return 0. This indicates success. 0 Pretty ......
Okay, some basic examples of overloading in F# Overloading Constructors Assume you have a F# object called person… type Person (firstname : string, lastname : string) = member v.Fullname = firstname + " " + lastname This only has one constructor. To add additional constructors to the object by explicitly declaring them using the method member new. type Person (firstname : string, lastname : string) = new () = Person("Unknown", "Unknown") member v.Fullname = firstname + " " + lastname In the code ......
So in part one of my posting I covered the real basics of object creation. Today I will hopefully dig a little deeper… My expert F# book brings up an interesting point – properties in F# are just syntactic sugar for method calls. This makes sense… for instance assume I had the following object with the property exposed called Firstname. type Person(Firstname : string, Lastname : string) = member v.Firstname = Firstname I could extend the Firstname property with the following code and everything would ......
In the next few blog posts I am going to explore objects in F#. Up to now, my dabbling in F# has really been a few liners and while I haven’t reached the point where F# is my language of preference – I am already seeing the benefits of the language when solving certain types of programming problems. For me I believe that the F# language will be used in a silo like architecture and that the real benefit of having F# under your belt is so that you can solve problems that F# lends itself towards and ......
So the brunt of my my very complex F# code has been done. Now it’s just putting the Silverlight stuff in. The first thing I did was add a new project to my solution. I gave it a name and VS2010 did the rest of the magic in creating the .Web project etc. In this instance because I want to take the MVVM approach and make use of commanding I have decided to make the frontend a Silverlight4 project. I now need move my F# code into a proper Silverlight Library. Warning – when you create the Silverlight ......
So I have been delving into F# more and more and thought the best way to learn the language is to write something useful. I have been meaning to get some more Silverlight knowledge (up to now I have mainly been doing WPF) so I came up with a really simple project that I can actually use at work. Simply put – I often get support calls from clients wanting new activation codes. One of our main app’s was written in VB6 and had its own “security” where it would require about a 45 character sequence for ......
First of all – shout out to Peter Adams – from the feedback I have gotten from him on the last few posts of F# that I have done – my mind has just been expanded. I did a blog post a few days ago about infinite sequences – I didn’t really understand what was going on with it, and I still don’t really get it – but I am getting closer. In Peter’s last comment he made mention of Lazy Evaluation. I am ashamed to say that up till then I had never heard about lazy evaluation – how can evaluation be lazy? ......
I posted yesterday how really good WF4 was looking. Today I thought I would show some real basics that I was able to figure out. This will be a simple example, I am going to make a flowchart workflow – which will prompt the user to guess the number until they guess the right number. Lets begin… Make a new project and make it a Workflow console Application. Then select the Workflow file and drag a FlowChart (2) to point 3. This will now show a green start circle in the designer form. We are going ......
So I have seen a few posts done by other F# fans on solving project Euler problems. They looked really interesting and I thought with my limited knowledge of F# I would attempt a few and the first one I had a look at was problem 5. Which said : “2520 is the smallest number that can be divided by each of the numbers from 1 to 10 without any remainder. What is the smallest number that is evenly divisible by all of the numbers from 1 to 20?” So I jumped into coding it and straight away got stuck – the ......
I am plodding along with my F# book. I have reached the part where I know enough about the syntax of the language to understand something if I read it – but not enough about the language to be productive and write something useful. A bit of a frustrating place to be. Needless to say when you are in this state of mind – you end up paging mindlessly through chapters of my F# book with no real incentive to learn anything until you hit “Exceptions”. Raising an exception explicitly So lets look at raising ......
I have been playing around with MSCRM4 lately. It has been interesting going. I had a problem getting the tax to reflect correctly, it was defaulting at zero. Eventually I found a solution after scouring the web for a while... see steps below… Add the following code to OnSave and OnLoad events of quotedetails form with (crmForm.all) { try { var dTax = (baseamount.DataValue - manualdiscountamount.DataVa... *15.5 /100; tax.DataValue = dTax; extendedamount.DataValue = baseamount.DataValue - manualdiscountamount.DataValue ......
In part one of this series I showed an example of encapsulation within a local definition. This is useful to know so that you are aware of the scope of value holders etc. but what I am more interested in is encapsulation with regards to generating useful F# code libraries in .Net, this is done by using Namespaces and Modules. Lets have a look at some C# code first… using System; namespace EncapsulationNS { public class EncapsulationCLS { public static void TestMethod() { Console.WriteLine("Hello"); ......
I have been looking at F# for a while now and seem a few really interesting samples and snippets on howto’s. This has been great to see the basic outline of the language and the possibilities, however a nagging question in the back of my mind has been what does an F# project look like? How do I group code in F# so that it can be modularized and brought in and out of a project easily? My Expert F# book has an entire chapter (7) dedicated to this and after browsing the other chapters of the book I ......
So I have a brief hour or so that I can dedicate today to reading my F# book. It’s a public holiday and my wife’s birthday and I have a ton of assignments for UNISA that I need to complete – but I just had to try something in F#. So I read chapter 1 – pretty much an introduction to the rest of the book – it looks good so far. Then I get to chapter 2, called “Getting Started with F# and .NET”. Great, there is a code sample on the first page of the chapter. So I open up VS2010 and create a new F# console ......
Where would I be without the inspiration of the following South African developers who are constantly contributing to the .NET community. Robert MacClean Hilton Giesenow Rubi Grobler Zayd Kara Zlatan Dzinic Dave Coates As well as the great input we get from the local Microsoft people ......
So I am half way through dev days in Johannesburg. It has been quite an interesting day… Maybe it is me, but this year it hasn’t been as OMG as at previous conferences. A few things that stood out though… 1) This is the first time I have had to queue in a line to use the gents toilets before – yes, a true sign that we are at a typically male dominated industry event in this country – the men’s toilets were jam packed – the ladies if there were any there didn’t have a problem. 2) Bart De Smet presentation ......
I spent a few hours scratching my head on this one... So I thought I would blog about it in case someone else had the same headache. Assume you have a class, and you are wanting to use the INotifyPropertyChanged interface so that when you bind to an instance of the class, you get the magic sauce of binding to do you updates to the UI. Well, I had a special instance where I wanted one of the properties of the class to add some additional formatting to itself whenever someone changed its value (see ......
General This may sound like a typical noob statement, but I’m finding out in a very real way that just because you have a solution to a problem, doesn’t necessarily mean it is the best solution. This was reiterated to me when a friend of mine suggested I look at using Dictionaries instead of Lists for a particular problem – he was right, I have always just assumed that because lists solved my problem I did not need to look elsewhere. So my new manifesto to counter this ageless problem is as follows… ......
My brain still thinks in C#!!! I have been looking at F# and trying to figure out the basics of it, but all the time in the back of my mind I am going – what is the C# equivalent to this or that… It’s frustrating because I almost want a F# to C# dictionary the whole time – and simply translate my C# code to F# – which would negate the main motivation for learning F# – as I want learn functional programming - if I was simply doing C# code in a F# syntax I would be gaining nothing! So I am experiencing ......
So… I am a C# coder at heart, but F# is starting to fascinate me. Today I thought I would try and figure out the basics of getting the two languages to talk to each other. From what I could tell on Stack Overflow, at least for now there will not be any Windows Forms / WPF exposed to F# (it is possible, but I am lazy and like VS to do as much as possible). Which leaves me thinking, where will I use F#. I can immediately see a use for it in the Business Layer of my applications – which would mean that ......
I recently watched “An Introduction to Microsoft F#” on Channel 9. I would say this is one of the best overviews of the F# language that I have seen and really puts things into perspective. I have been playing around with the basics of the language, but just didn’t get it… I don’t know if I am getting it now… but my mindset has changed. Do yourself a favour – if you want to see F# in action then watch this video. There are a few things in the video that Luca demonstrated that I would like to make ......
I was reading a blog post by Chris Smith on F#. Firstly, a really good blog post and well worth a read if you are interested in learning the basics of F# as I am. The first thing that struck me about F# and Chris’s blog was his explanation that in F# there typically wasn’t such a thing as a variable – because of the immutability of the “value” holders. That doesn’t mean that we don’t get mutable value holders – they are available, but they need to be explicitly declared. Have a look at the F# code ......
Okay… so I know this is really simple stuff – but sometimes you just need a sample hello world. Here is the c++ version for VS2008. #include <iostream> using namespace std; int main() { cout << "Hello World" << endl; system("PAUSE"); return(0); } ......
General Basically, a linked list is a collection of nodes. Each node in the list has two components – a components to store information about that node (i.e. data) and a component to store the next “linked” node. The last node in a linked list indicates that it does not have a “linked” node – usually by a null reference. The address of the first node is stored in a separate location, called the head or first. The code snippet below shows a basic structure of a node declaration in c++. struct nodeType ......
This is a basic review of Pointers in c++ There are 3 main categories of data types in c++, Simple Structured Pointer A one liner to describe a pointer is a variable whose content is a memory address - thus its name “pointer”. In essence a pointer “points” to another location in memory. Declaring a Pointer (Specifying Variable Name & Size) In the most simple case, a pointer “points” to where another variable value is stored in memory. In programming terms, if you were to think about memory as ......
It suddenly got a whole lot easier in 3.5 SP1 So, you are using WPF and getting all the goodness of binding to objects. You may have a decimal that you want to be displayed as a formatted currency, or a DateTime property that you want in a specific date format. Up to now, there were really two methods for achieving this. 1) Format the data in code as a string and instead of binding to the data, bind to the formatted string data. 2) Create a ValueConverter. So up to now I have always opted for method ......
So I found an interesting code snippet for debugging. If you put the following code in your project, the compiler causes a breakpoint when it executes the line of code.
System.Diagnostics.Debugger.Break();
An interesting paradigm So today I got to play around with F# for the very first time. I must admit, it was very different to what I am used to, but I am keen to learn more. Because I was using VS2008, before I could do anything in F# I needed to download and install the SDK. Once installed it was pretty easy getting started. I tried the following Hello World example. My thoughts on F# right now are not well formed. I can see the benefit of having a functional language in the .NET framework, but ......
No more left-right code I was listening to a legacy Polymorphic Podcast and heard about a really great time saver called AutoMapper. AutoMapper uses a convention-based matching algorithm to match up source to destination values. It is extremely useful when you have a lot of “left-right code” and want to automate the passing of the values. For instance, assume you had two objects (e.g. of type stClient & Client), and you wanted to mass copy the values from the stClient object to the Client object. ......