Matthew Podwysocki's Blog
Architect, Develop, Inspire...
-
Upcoming Events - Richmond, Ruby DCamp and more
The next couple of months are pretty busy for me. There are several items worth noting whether I'm speaking or just plain attending. This is a great season for community events and chances for continuous improvement.
-
Emulating Java Enums in .NET - F# Edition
I'm not usually one to follow up replies from another's blog in my own, but some challenges need further analysis. Ayende posted earlier about emulating the behavior of Java Enums in .NET. Since the inception of C#, there has been a lot of back and forth between Java and C# in terms of features such as generics, attributes (annotations), foreach statements, and lastly enums. There are significant differences between the two, but let's see if we can bridge that gap.
-
Object Oriented F# - Creating Classes
In the past couple of posts, I covered extension everything in F#. This allows me to extend .NET types with such things as extension static and instance methods, properties, properties with indexers, events and so on. But, let's go back to the beginning and cover object oriented programming with F# from the ground up. I like to stress that F# is not only a first class functional language, albeit a more impure one than say Haskell, but it also treats imperative and object oriented code as first class citizens as well. To be able to mix and match for the appropriate programming style makes this a very powerful tool, to be able to use functional aspects with first class citizenship, but as well with imperative and object oriented, well, then the sky is the limit. With that, let's go over some of the things that make F# a player in this space.
-
DC ALT.NET - Building ASP.NET MVC Apps Wrapup
I want to thank Troy Goode for his presentation tonight at DC ALT.NET. He gave a great demo of how to build from scratch an ASP.NET MVC blog engine, which is a lot to ask given our two hour timeframe. And yet, he pulled it off nicely. As promised, Troy has posted his materials from the presentation here.
-
Reminder - DC ALT.NET - 9/24/2008 - Building ASP.NET MVC Applications
Just a reminder that the September meeting for DC ALT.NET will be on September 24th, 2008 from 7PM-9PM. Check out our site and our mailing list for more information as it becomes available. This month, Troy Goode will present on building applications with ASP.NET MVC. This will be a basic introduction, but also how to build practical applications, such as a blog engine using MVC. Download the latest bits, ASP.NET MVC Preview 5 and follow along as I will be.
I'd like to thank Cynergy Systems, Inc for sponsoring this month's event. As a side note, they are actively looking for experienced .NET developers with interest in WPF and Silverlight. So, if you're looking for a great company that is a leader in the Rich Internet Applications area and want to work in downtown Washington D.C., definitely check them out.
The information is as follows:
DateTime:
9/24/2008 - 7PM-9PM
Location:
Cynergy Systems Inc.
1600 K St NW
Suite 300
Washington, DC 20006
Show Map
Be there and hope to see a passionate crowd!
-
Herding Code Episode 18 - Functional Programming and F#
A couple of days ago, I had the pleasure of recording Episode 18 of Herding Code on Functional Programming and F#. The topic on their minds was around functional programming, and more in particular with some of the things I've been doing around the .NET space both C# and F#.
-
Functional C# - Pattern Matching
In the past, I've covered quite a bit of functional programming in C# 3.0 and how you can implement some of the basic constructs using the language. In preparation for the Richmond Code Camp coming up on October 4th, for which I'm planning to present "Functional C# -or- How I lost the foreach and learned to love LINQ", I'm revisiting some of the topics I've talked about in the past. One of those topics is pattern matching.
-
Object Oriented F# - More Extension Everything
In a previous post, I covered a few ways we can do extensions methods, properties, events and so on with F#. After a few chats, I realized I may have missed a couple of cases that I wanted to cover today. These two cases are extension operators and extension properties with indexers.
-
Side Effects and Functional Programming
One of my first posts at CodeBetter was in regards to side effects and how, when unmanaged, can be truly evil. Today, I want to revisit that topic briefly in regards to functional programming and managing side effects. When I was out in Redmond a couple of months ago, I had the opportunity to sit down with Erik Meijer to discuss functional programming among other topics. In there, we discussed a number of issues around managing side effects and state in your code, and how both C# and F# don't intrinsically support such a concept. Languages like Haskell, of course do with IO monads and other such monadic structures. Whether languages such as F# and Erlang are not pure functional programming languages is another matter, due to the fact that you don't have to declare when you are side effecting (reading a database, writing to console, spawning a process, etc).
-
Object Oriented F# - Extension Everything
A post by Jeremy Miller caught my eye this morning in regards to extension methods in Javascript. While I think that's pretty interesting, I don't think it's a real fair comparison. Instead, I want to revisit C# and even F# with regards to extension methods, because there are a few things I wanted to point out. This is the start of a series covering object oriented programming techniques and how they are used in F#. Note that F# is not only a functional language, but it is a general purpose programming language that supports functional, imperative and object oriented techniques. I hope this series is useful for pointing out that F# fits the need very nicely for object oriented constructs, which is seldom covered.