I often forget about different conferences I would like to keep an eye on, so I decided to make a list of them on my blog.
The MSDN Southern Fried Roadshow
Glen Gordon, our local evangelist is doing another road show. Here are the event details.
Thursday, February 25, 2010 1:00 PM – Thursday, February 25, 2010 5:00 PM Eastern Time (US & Canada)
Welcome Time: 12:30 PM
Atlanta Marriot Alpharetta
5750 Windward Pkwy
Alpharetta Georgia 30005
United States
Language(s):
English.
Product(s):
Azure Services Platform, Microsoft technologies, Windows and Windows 7.
Audience(s):
Pro Dev/Programmer.
Presenter(s):
Glen Gordon, Joe Healy
Event Overview
MSDN Events presents: Take Your Applications Sky High with Cloud Computing and the Windows Azure Platform
Join your local MSDN Events team as we take a deep dive into cloud computing and the Windows Azure Platform. We’ll start with a developer-focused overview of this new platform and the cloud computing services that can be used either together or independently to build highly scalable applications. As the day unfolds, we’ll explore data storage, SQL Azure, and the basics of deployment with Windows Azure. Register today for these free, live sessions in your local area.
If you register and attend this event, you will be placed in a raffle to win a chance to bring home one (1) free copy of Windows 7 – you could be the lucky winner! Register today!
SESSION 1: Overview of Cloud Computing and Windows Azure
The Windows Azure platform is a set of high-performance cloud computing services that can be used together or independently and enable developers to leverage existing skills and familiar tools to develop cloud applications. In this session, we’ll provide a developer-focused overview of this new online service computing platform. We’ll explore the components, key features and real day-to-day benefits of Windows Azure.
Highlights include:
· What is cloud computing?
· Running web and web service applications in the cloud
· Using the Windows Azure and local developer cloud fabric
· Getting started – tools, SDKs and accounts
· Writing applications for Windows Azure
SESSION 2: Survey of Windows Azure Platform Storage Options
Durable data storage is a key component of any cloud computing offering. The Windows Azure Platform offers many options, which can be used alone or in combination. Windows Azure itself offers ready-to-use and lightweight storage in the form of tables, blobs, and queues. Another choice for storage is SQL Azure, a true relational database in the cloud. In this session, we’ll explore the highlights of these implementations and how to both create and use storage in each form. We’ll give you guidance on choosing the right forms of storage for your application scenarios.
Highlights include:
· Understanding table & blob storage
· Programming against table & blob storage
· Working with queue storage
· Managing credentials and connection strings
· Scaling and configuration
· Understanding SQL Azure databases versus local SQL Server databases
· SQL Azure firewall, logins and passwords
· Database creation, deployments and migrations
· Database management using SQL Management Studio
· Programming against SQL Azure databases
SESSION 3: Going Live with your Azure Solution
Windows Azure features a powerful, yet simple deployment model. By focusing on your application and abstracting away the infrastructure details, you can deploy almost any app with minimal fuss. In this session, we’ll walk you through the basics of Windows Azure deployment, including site monitoring, diagnostics and performance issues.
Highlights include:
· Start-to-Finish Visual Studio demonstration of a realistic XML data driven business web site from the desktop to the cloud.
· Windows Azure Deployments
· Start-to-Finish Visual Studio demonstration of a realistic SQL Server data driven business web site from the desktop to the cloud.
· Configuration of your application in the cloud
· Guidance and Suggestions to ensure your success
*Be sure to learn more about the TechNet event happening on the same day at the same location from 8:30am–12:00pm. If you are interested in attending, please register separately for that event here: http://msevents.microsoft.com/CUI/EventDetail.aspx?EventID=1032439495&Culture=en-US
Registration Options
Event ID:
1032439974
Here is the link to this event:
http://msevents.microsoft.com/CUI/EventDetail.aspx?EventID=1032439974&Culture=en-US
Speaking at Atlanta .NET Users Group
I spoke at Atlanta.NET Users Group yesterday, My topic was Azure Step-by-Step.
I talked about why someone would use Windows and SQL Azure, then I built a Silverlight application from scratch. The application was designed to run in Windows Azure and use SQL Azure as database. I demonstrated how to get maximum code re-use between traditional .NET web application and the same application developed for Azure. At the end, I had an application that could run on either platform with just web.config change.
You can download the zip file with PowerPoint slides with useful links as well as the sample project I built here.
Please let me know if you have any questions.
Microsoft MVP
I have just been selected to receive the Microsoft MVP award! This is an awesome news! I feel honored and humbled that Microsoft recognized my efforts in learning Microsoft technologies and being active in local Microsoft oriented developer communities, user groups and events. At the risk of making cliché comments, I would like to recognize a few people and organizations that encouraged me to strive to do my best.
As much as I learned by working at Horizon Software, there is no way I would have gotten where I am without Magenic Technologies. This the most awesome company to work for. Great environment and great people too numerous to mention encouraged me to work hard every day. Participating in local users group has been invaluable experience for me as well. I have met many people smarter than me over the last number of years that helped me out a lot. Special thanks to Glen Gordon, local Microsoft developer evangelist for nominating me. I am very much looking forward to many exciting years learning and (hopefully) teaching Microsoft technologies.
Upcoming talks
Somehow (I am not exactly sure how) I ended up with a lot of talks that I am doing in January. Between that and two projects I am working on simultaneously at Magenic, I have been extremely busy lately. Those two projects will continue through end of January.
In January I will talking at Gwinnett Georgia Microsoft Users Group on SQL Azure, at Atlanta Leading Edge Microsoft Users Group on Velocity, and at Atlanta .NET Users Group on building an Azure application step-by-step. I am also wiring an article on Entity Framework for a magazine that is due on December 31st. Also, I am going on vacation this Saturday – my wife and I are talking our kids to Washington, DC.
I will probably be doing much blogging for a few weeks as a result.
Could I possibly have more fun than this? Not likely.
Rocky Lhotka is Talking Oslo at ALEMUG
At out next Atlanta Leading Edge Microsoft Users Group Rocky Lhotka will be talking about Oslo. Please visit ALEMUG.NET home page to register for this exciting event!
Here are the details of this event.
Microsoft code-name “Oslo” includes the ability to define your own domain specific language (DSL), a metadata repository hosted in SQL Server and a graphical tool (“Quadrant”) to edit that metadata. One part of the Oslo vision is that you might define a DSL, build code in your language, compile that code into the repository and then create a runtime to dynamically execute that metadata. Taking this vision and combining it with the popular CSLA .NET framework, the result is MCsla. This is a prototype DSL grammar, repository schema and runtime that dynamically creates and executes CSLA .NET business objects with a WPF UI. The result is a fully functional application that you can create with a fraction of the code you’d need to write with traditional programming techniques. Learn how MCsla was created and how it works in this rapid-fire walk through the depths of the Olso technology.
Rockford Lhotka is the creator of the popular CSLA .NET development framework, and is the author of numerous books, including Expert C# 2008 Business Objects and Expert VB 2008 Business Objects. He is a Microsoft Regional Director, MVP and INETA speaker. He contributes to several major magazines and regularly presents at major conferences around the world. Rockford is the Principal Technology Evangelist for Magenic (www.magenic.com), a company focused on delivering business value through applied technology and one of the nation’s premiere Microsoft Gold Certified Partners. For more information go to www.lhotka.net.
C# 4.0 (.NET 4.0) Features
As part of our first ALEMUG meeting I did a presentation on some of the new features in C# 4.0. Here is what I talked about.
First topic was on optional and named parameters in C#. Here is how you would define a function with optional parameters:
public static int AddTwoOrThreeOrFourNumbers(int numberOne = 0, int numberTwo = 0, int numberThree = 0, int numberFour = 0)
{
int returnValue = numberOne + numberTwo + numberThree + numberFour;
return returnValue;
}
All you need to do to define optional parameters is to provide a default value for each one. Here is how you could call this function by providing values only for some parameters:
ClassWithOptionalParameters.AddTwoOrThreeOrFourNumbers(1, 2)
As you see, I only supplied two out of three parameters. All the magic is preformed by the compiler. If you look at disassembled code, you will find that call to the function actually has all three parameters defined, just the last one is zero.
Another related feature is named parameters. You can actually specify the name and the value for each parameters explicitly and out of order even:
ClassWithOptionalParameters.AddTwoOrThreeOrFourNumbers(numberOne: 1, numberFour: 4)
There are a few great uses for named / optional parameters. One is COM Interop, specifically Office Interop. Many functions in the Office take a number of optional parameter. Right now you have to specify all of them. With C# 4.0 you can specify just the ones you need. Here is an example for SavedAs:
var format = Microsoft.Office.Interop.Word.WdSaveFormat.wdFormatDocument97;
Microsoft.Office.Interop.Word.Application word = new Microsoft.Office.Interop.Word.Application();
var doc = word.Documents.Add();
doc.SaveAs(FileName: fileNameSaved, FileFormat: format);
In general, there are many features in C# to make Office development easier. One of them (pointed out by Jim Wooly) is No PIA – No Primary Interop Assembly distribution. To use this feature just go to properties of office interop assembly in the references window and set Embed Interop Types to True. If you do, you do not have to distribute Interop assembly!
Another features I talked about is dynamics. Here is you declare a dynamic variable:
dynamic person = ExpandoClass.GetExpando();
Looks very similar to var, doesn’t it? There is a big difference though between vars and dynamics. The key difference is the resolution time. Vars are resolved at compile time, and they are actually strongly typed in the running program. Dynamics on the other hand are resolved at run time. As a result, you can compile pretty much any code that refers to dynamics. For example, you can type
dynamic thing = GetSomeDynamicObject();
thing.SomeProperty = 1;
SomeProperty actually does not exist anywhere in the source code, it is called dynamically at run time and it will succeed as long as whatever object is returned by GetSomeDynamicObject function has this property. Very powerful feature when it comes to interacting with objects unknown at compile time. You can use it to interact with dynamic languages such Python or COM objects or even other .NET objects. Here is some code I came up with (not that I would write something like this, but it demonstrate the power of the feature) – universal sorter that can sort any collection:
public static class DynamicDemo
{
public static IEnumerable<dynamic> GetSortedData(IEnumerable<dynamic> initialCollection, Func<dynamic, dynamic> sortExpression)
{
dynamic retVal = (from one in initialCollection
orderby sortExpression(one)
select one);
return retVal;
}
Dynamics is a very powerful features, but can be easily abused. Also, anything can be dynamic, not just objects. You can also have dynamic properties and methods and their parameters.
Another related feature is ExpandoObject. This is a dynamic object that can be “expanded” at run time to contain custom properties and values:
dynamic expando = new System.Dynamic.ExpandoObject();
expando.Name = "Sergey Barskiy";
expando.Age = 18;
Seems pretty weird – I actually define the object at run time.
You can download sample solution (requires VS 2010) here.
ALEMUG.net meeting
Atlanta Leading Edge Microsoft Users Group is meeting tomorrow. Our topic will be new features in C# 4.0 and .NET Framework 4.0. Some of the topics are contra-variance and co-variance, dynamic types, office interop, named and optional parameters, code contracts.
Please join us tomorrow for an exciting meeting. See the website for directions and times – www.alemug.net.
See you tomorrow.
SQL Saturday #25
I spoke yesterday at SQL Saturday event in Gainesville, GA. My topic was CLR Integration in SQL Server.
CLR stands for Common Language Runtime or .NET Framework. This SQL Server 2005 or higher feature allows developers to write .NET assemblies and deploy them in SQL Sever. You can implement scalar and table-values functions, stored procedures, triggers, user defined types and aggregates.
In my talk I spoke of features that I worked or had a need for. Those included interacting with OS, such as file access or registry access. I also talked about implementing fuzzy matching logic, creating custom bitmaps and utilizing them in SSRS reports.
You can download the sides and sample project here.
Thank you.
I will be talking at GGMUG on Thursday, September 10th
I will be presenting at the next Gwinnett Georgia Microsoft Users Group this coming Thursday. The topic of my presentation will be Entity Framework in general and its applications to Silverlight development. I will be posting the zip file with slides and sample application immediately after the presentation.
I hope to see you there!
Atlanta Silverlight Fire Starter Event
Atlanta Silverlight Fire Starter event yesterday was awesome! There were over 100 people attending. The vast majority stayed there for the entire length of the event that lasted from 8am until 6pm. All presenters did a great job. All attendees were great. They actively participated in all discussions, asking many questions. Many thanks to all the event sponsors who helped make Fire Starter possible, The event was truly a communal effort pulled off by many people excited about the technology and willing to share their knowledge and experience. Please see Silverlight Atlanta site for more details about the event and its sponsors.
I posted my presentation about Deploying Silverlight Applications that I presented at the Fire Starter here. The zip file contains sample project, database backup and PowerPoint presentation.
I was also going to chat for a couple of minutes about reporting in Silverlight and localization in Silverlight, however we of ran out of time by the end of the day. I pushed an example in localization into the zip file above. Just look at how title is setup on the main screen. If you are interested in reporting in Silverlight, just find the blog entries on this topic on this blog. There is also a sample project here on that showcases reporting in Silverlight.
I’d like to thank again to all involved in Fire Starter event, presenters, attendees and sponsors alike.
SQL Saturday Presentation
My talk at SQL Saturday just ended. My topic was CLR integration – Integrating CLR assemblies to support custom image creation and encompassing complex business logic in SQL server/SSRS. I posted all the code and slides here
As always it was a pleasure to talk in front of my fellow developers.
SQL Saturday
I will be speaking at the upcoming SQL Saturday in Atlanta on April 25, 2009.
What is SQL Saturday? It’s a one day free training event for SQL Server professionals organized by a local user group. It takes a lot of work and a lot of volunteers, but it’s also a lot of fun! It is held at Microsoft’s offices in Alpharetta, GA.
My topic is CLR integration – Integrating CLR assemblies to support custom image creation and encompassing complex business logic in SQL server/SSRS.
Here is the link to the event: http://www.sqlsaturday.com/eventhome.aspx?eventid=17
Introduction to Silverlight
I just posted the sample project I used for “Intro to Silverlight” presentation at the Atlanta .NET Users group meeting yesterday on SkyDrive. Please follow this link to get the sample project:
I would like to thank everyone who attended the meeting.
Atlanta .NET Users Group
It is official now. I will be speaking at the next Atlanta .NET Users Group (http://atldotnet.org/). The topic is Introduction to Silverlight. It has been a while since I got an opportunity to talk in front of Atlanta users group, and I am quite excited about it.
Happy Twittering to Me
Yep, I broke down and joined the Twitter.
Atlanta Code Camp
had a ton of fun yesterday at Atlanta Code Camp. I always enjoy hanging around fellow developers. In this instance Magenic also had an impressive showing at the event. Colin Whitlatch, James Ashley, Jason Rainwater , Whitney Weaver and I had presented at the code camp. I would like to thank everyone who spent their Saturday at this happening, and particularly those who attended my session
Atlanta Code Camp 2009
This year’s code camp is upon us. I have volunteered to speak at this code camp. My topic is “Building Silverlight Business Applications using CSLA.NET for Silverlight”. Please check out the Code Camp web site for more details. As always, I am excited to speak in front of my fellow coders.
Download presentation and sample project here.
More on designer / developer collaboration
I encountered one more aspect of collaboration, and I would like to elaborate on. This involves communication with the user. Here is how the story goes. A designed lays out the UI. Proposed UI is discussed with the user, who subsequently approves the design. At this point the UI is given to developer to work on. Well, developer finds that the UI is not workable within the constraints of the development environment. For example, UI design results in highly inefficient communication between UI layer and business layer or database layer. Or, the sample UI lists a handful of items on the screen, but database has hundreds, and the full list does not even fit on the screen and looks unreadable. So, what is the solution you ask? Involve a developer in review process prior to demonstrating UI to the user. I think this procedure should minimize the changes to UI after the user’s sign-off.
Atlanta’s .NET Users Group
We now have a new site for Atlanta area .NET users’ group. The group’s focus is more broad than just .NET. It actually focuses on all Microsoft development technologies. Here is new address: http://www.atldotnet.org/default.aspx. There is also an RSS feed on the new site so that you can stay current with what is going on at the users group.
Code Project
Yeah to me!!! My first article on Code Project just got published. Click here to see it! I wrote a POP3 email client in .NET, utilizing TcpClient, NotifyIcon, Browser Control (for email preview) and other classes. Check it out.
SQL Server Users Group
Yesterday I went to my first SQL Server Users Group meeting in Atlanta. There were about 50 people there, way more than I expected. I went to see Whitney Weaver’s, my colleague at Magenic, presentation on dynamic management views. I enjoyed the presentation as well as overall environment of the users’ group. I am definitely planning to attend more of their meetings whenever I have a chance.
First meeting of Gwinnett, Georgia Microsoft User Group
Yesterday I attended the first meeting of GGMUG. There were about 30 or so people there, which is really more than I expected for the first meeting. Both Microsoft developer evangelists in Atlanta, Glen and Doug, attended the meeting. Doug presented on WCF. There was one more presentation by Noah Subrin on WF. Overall I was very pleased with how the first meeting turned out.
It is sometime hard to make it all the way to Alpharetta from Gwinnett to attend Atlanta .NET Users group. It is much easier to stay in Gwinnett. Having said that, I will probably keep on trying to attend meetings at Microsoft headquarters anyway.
Magenic Technology Summit
The first ever Magenic Technology Summit is being held on Friday June 20 in Downers Grove near Chicago, and yours truly is invited.
This is a full day of Magenic-provided training, available by invitation only to customers and potential customers of Magenic. We have lined up an impressive array of speakers and topics in two tracks, .NET development and Microsoft servers. And we have lined up two keynotes.
Our first keynote speaker is Jay Schmelzer, who is the Group Program Manager for RAD tools. This basically means he runs the teams for all the Visual Studio designers and related RAD tools. He’s an excellent good speaker and should provide some great insight into the present and future of RAD development tools from Microsoft.
Our second keynote speaker is Rockford Lhotka, Magenic’s Technology Evangelist and the creator of the very popular CSLA .NET development framework.
But more importantly, two tracks of in-depth technical content straight from the experts at Magenic. Topics covering the present and future of .NET development and key Microsoft server products. An event like this doesn’t come along every day, and shouldn’t be missed!
The event is FREE to customers (though they’ll need to cover any travel costs), and includes lunch and a reception at the end of the day.
Click here to see the agenda.
Heroes Happen Here Launch Event
Today I went to Microsoft Launch Event. It was dedicated to the launch of Windows Server 2008, Visual Studio 2008 and SQL Server 2008. I registered for developers’ track and attended three training sessions as well as keynote address.
Here are the sessions I went to:
1. Breakthrough Challenges with Visual Studio 2008
This session was not impressive. The presenter seemed unprepared, and no running code samples were shown. The presentation seems to be very marketing-oriented. The presenter’s demeanor seemed inappropriate, as he kept “begging” for a round of applause almost constantly. I have not learned anything at this session.
2. Reach End-Users with Next Generation Web Applications
This was a good session in my opinion. The presenters were familiar guys that I have meant on numerous occasions at the user group events. The key features that were shown were: Java script debugging and intellisense, various asp extenders object, such as watermark extender, password strength extender, etc… Update panel feature was also demonstrated, although it is not really “new.” Linq was part of presentation. I found it easy to understand conceptually, although I have looked and “played” with Linq already. Presentation overall was good. Split code/preview screen for ASP applications was shown. This feature looked pretty cool.
3. Exploring Business Intelligence and SQL Server 2008
This session I have to admit went over my head a bit. It was oriented toward BI folks though, so the result was not at all unexpected. Ability to predict future results based on existing data I found super cool. This feature actually could be used by itself inside Excel as long as there is SQL server SSAS is running somewhere. Performance Point and Excel applications also looked impressive. I can see why many companies would spend a ton of money on this technology.
4. New guidance documents.
If you would like to review new Microsoft guidance documents, now called Software plus Services blueprints, here are the links:
Atlanta Code Camp
On March 29th I had my first ever talk at Atlanta Code Camp. You can click on Speakers menu to see my name. It really was a fun experience for me. I enjoyed spending the entire day with my piers. There were quite a few folks at the code camp who work with me at Magenic. I attended as many sessions as I could in time allotted.
My own presentation went pretty well, based on the feedback that I got after it. I taught a session on CSLA. You can download the Power Point presentation here.
I certainly hope that I will get an opportunity to talk more in front of other people. I guess I am a glutton for attention…