Welcome to SofiaDev.Org's Blogs Sign in | Join | Help

Passed 2 more Microsoft .NET exams on .NET 3.5

As it turned out, I've passed another BETA I took back in late November. I didn't get any notification from MS, so I supposed I failed. Until yesterday, when I opened my MS Transcript, I noticed there's another exam there:

70-565 PRO: Designing and Developing Enterprise Applications using Microsoft .NET Framework 3.5

The other one I passed (yesterday) is:

70-503 TS: Microsoft .NET Framework 3.5, Windows Communication Foundation Application Development

Cheers,
Br.
posted by branimir | 0 Comments

Passed 70-505 BETA - Microsoft .NET Framework 3.5, Windows Forms Application Development

I've just got the following email from MS:

Congratulations on earning your Microsoft Certified Technology Specialist: .NET Framework 3.5, Windows Forms Applications certification! We hope you enjoy the benefits of your certification and of membership in the Microsoft Certified Professional community.

It's one of the 3 beta exams I took in late Nov/early Dec '08. I am still waiting on the other 2. Let's home I've passed on at least one of them :).

Cheer,
Branimir
posted by branimir | 0 Comments

Teaching courses on Silverlight & WPF - availability is now confirmed

As of Dec 1st, I've started teaching official MS and custom courses in Silverlight & WPF in house. That basically means that if you're a company and you need training for your developers, you can contact me and I can arrange the course to be given in time and place that's comfortable for your developers. Pricing depends on the type of courseware - MS or not and number of days it will be thought. Contact me at branimir _ at _ sofiadev.net for more information. Availability for entire Europe is almost certain in 2-3 weeks after confirmation of a good time for the client.

I also do the full .NET courseware from MS and lot's of Sharepoint training lately, so if that's interesting, plese contact me as well.

Cheers,
Branimir
posted by branimir | 0 Comments

Configuration changes in NHibernate 2.0

I was upgrading an NH 1.x project to 2.0 recently, when I've found out there are actual config changes in NH 2.0, compared to the well known 1.x set of builds.

Long story in short, here it is:

In NH 1.x, we used to integrate NH into our projects by defining a new configuration section, like this:

<configSections>
   <section name="nhibernate" type="System.Configuration.NameValueSectionHandler, System, Version=1.0.1.0,Culture=neutral, PublicKeyToken=b77a5c561934e089"/>
</configSections>

This statement is being used for declaring our NH addiction. Then we add the actual section underneath:

<nhibernate>
    <add key="hibernate.connection.provider" value="NHibernate.Connection.DriverConnectionProvider"/>
    <add key="hibernate.dialect" value="NHibernate.Dialect.Oracle9Dialect"/>
    <add key="hibernate.connection.driver_class" value="NHibernate.Driver.OracleDataClientDriver"/>
    <add key="hibernate.connection.connection_string" value="Data Source=//win2003:1521/dbname;Persist Security Info=False;User ID=username;Password=password"/>
    <add key="hibernate.connection.isolation" value="ReadCommitted"/>
    <add key="hibernate.default_schema" value="defaultschema"/>
  </nhibernate>
  <connectionStrings>


So, it turned out that in NH 2.0, we have a new type for the NH config section. Instead of using System.Configuration.NameValueSectionHandler, the NH dev team has switched that with a new type: NHibernate.Cfg.ConfigurationSectionHandler. Here's an example:

<configSections>
   <section name="hibernate-configuration" type="NHibernate.Cfg.ConfigurationSectionHandler, NHibernate" />
</configSections>

And the actual section:

<hibernate-configuration xmlns="urn:nhibernate-configuration-2.2">
    <session-factory>
      <property name="connection.provider">NHibernate.Connection.DriverConnectionProvider</property>
      <property name="dialect">NHibernate.Dialect.Oracle9Dialect</property>
      <property name="connection.driver_class">NHibernate.Driver.OracleDataClientDriver</property>
      <property name="connection.connection_string">Data Source=//win2003:1521/dbname;Persist Security Info=False;User ID=username;Password=password</property>
      <property name="default_schema">defaultschemanamegoeshere</property>
      <property name="show_sql">true</property>
    </session-factory>
  </hibernate-configuration>


Cheers,
Br.
posted by branimir | 0 Comments

One Free ReSharper License @ every Sofia .NET UG Meeting

As of September 2008, JetBrains will give away one ReSharper license at every monthly meeting of the Sofia .NET UG.

I want to thank the company for sponsoring us, since I personally think that ReSharper is one of those must-have tools every .NET developer needs.
posted by branimir | 0 Comments
Filed Under:

SQL Server 2008 Community Launch & More Future Community Activities

SofiaDev.org is part of INETA, and as such will participate in the global SQL SERVER 2008 Community Launch Event. We're planning it for late October, just after DevReach. I'm currently looking for people that want to help with the presentations for the event - one or maybe 2 experienced SQL Server Dev/Administrators (that's SQL Server 2005 and optionally 2008). If you're interested, send me an email.

Here are some other interesting stuff for the .NET & Developer community in Bulgaria.

1. There's gonna be a regular UG meeting in the beginning of September.
2. We plan an opening session together with the first .NET UG in Plovdiv in late September.
3. In October we all will be @ DevReach, so be there too.
4. See the beginning of the post for #4.

Cheers,
Br.
posted by branimir | 0 Comments
Filed Under:

Presenting about the Castle Project @ DevReach

I'll be presenting about the Castle Project @ DevReach this October. We've been using it actively in the last few months, now working on our 3rd project using it.

I have to say that it's a very well thought and designed framework that reminded me once again that open source can be a good thing.

Castle Project is composed of a few main components:
  • Monorail - an MVC framework built on top of ASP.NET
  • Castle Windsor & MicroKernel - lightweight IoC implementation
  • ActiveRecord - ORM that builds on top of NHibernate - the famous and greatest open source ORM engine, port from Java's Hibernate implementation
I'll be posting the abstract for the presentation in the next couple of days, so stay tuned.
posted by branimir | 2 Comments
Filed Under: , ,

Silverlight RIA - Jason Beres for SofiaDev.org today. Now available online

Today the SofiaDev.org US will host its monthly meeting. The talk will be about Silverlight and will be held by Jason Beres, MS MVP and an author of a few books for .NET and one for Silverlight.

The event will be broadcasted online at the following address: mms://srv1.msbgregistration.com/sofianet. We'll be online at 7:00 pm local time.

Want to join us? Send me an email at contact _at_ sofaidev.org.


Cheers,
Br

posted by branimir | 0 Comments
Filed Under: ,

European Siverlight Challenge Contest - The Details

I haven't got the chance to post anything interesting in the last few months, but I believe now's a good time to do that.

I'm proud to present the first INETA European Contest - the European Silverlight Challenge in its Bulgarian version. The web site (http://silverlight.sofiadev.org) will be live after our UG meeting, scheduled for Thursday, Nov 29th. That means that you can start submitting your projects at that point.

The competition will continue by the end of January, 2008. Then we'll have a dedicated jury for selecting the winners. The #1 is going to qualify for the next round - in which he/she will be able to measure his/hers qualities in software design and development with the rest of Europe's finest.

It's about time you start working on that Silverlight project of yours. Visit the competition web after Nov 29th, register, then submit your project and get ready for becomming #1 Silverlight Developer/Designer in Bulgaria.

posted by branimir | 0 Comments
Filed Under:

Back to Bulgaria

Hello boys, I'm baaaack.

As March 1st '07 I've got back home. Moving-in toghether with my girlfriend right in the center of Sofia. Kicking it up with a nice project for Tam Tam - the best place I've worked for.

posted by branimir | 0 Comments

Playing with strings (part 2 of n)

Do you know, that there's a build-in check for empty/null strings in .NET 2.0?

So instead of doing this:

 

string strValue = "";

if (null == strValue || strValue.Length <= 0)
{
   //do something
}

You can do this:


string
strValue = "";

if (string.IsNullOrEmpty(strValue))

   //do something
}

Basically the method implementation looks like this:

public static bool IsNullOrEmpty(string value)

   if (value != null
   { 
      return (value.Length == 0); 
   
}

   return true;
}

Happy coding!!!

posted by branimir | 0 Comments
Filed Under:

Starting a pet project for SofiaDev.org registration web

I've started a pet project of mine during the holidays, for automating the registration for SofiaDev.org.

For now, the only way for registering is to get in touch with me (usually IM or email) and ask for an account. At the last meeting, a couple of guys, attending the event for the fist time, asked how they can register with the group.

It turned out that there are more people out there that want to get in, and can't do it, since there's no way to tell how you can get to an event, or even get an account for the site.

That's why I've started a simple pet project of mine, aiming at simplify the whole thing.

I've applied for a new project @ codeplex.com, but I'm still waiting for an approval there. I think they have problems with scaling the whole site out - a lot of new projects are getting stared there and just adding HDW is not that simple.

Nikola Kasev will do a code review, once I've something to show (I do, but it's still in our RnD repository, and I can't get him access). I'm also looking for volunteers for testing the registration and provide some feedback. If you're interested, send me an email at branimir _at_ gmail.com.

The requirements I've for now are published here: http://sofiadev.org/Pages/Requirements.aspx

 

posted by branimir | 0 Comments

Running Outlook Web Access on Vista

A colleague of mine had a problem today, sending emails through Outlook Web Access, while the web access URL was in he’s “Trusted sites” in IE 7.0.

A while ago, MS published an article, called Replacing the DHTML Editing Control in Windows Vista and Beyond”.

If you click on the “New” button in Outlook Web Access, running Vista, you won’t be able to edit the body of the message – the window looks like this:

Essentially, the problem relates to a missing ActiveX control in Vista, which will not be a part of any Windows from now on. A quick search into the body of the HTML source of the page, finds a reference to the GUID of the ActiveX control.

It looks like this:

<OBJECT class="MSGBODY" classid="clsid:2D360201-FFF5-11D1-8D03-00A0C959BC0A"

You can find it around line #249.

I’m not aware of any plans by MS, on releasing a patch for Exchange. However, I believe that pretty soon (maybe around or after RTM for Vista) they will act on it.

posted by branimir | 0 Comments

Playing with strings (part 1 of n)

I was writing a method today, one that has to concatenate and format 2 strings. As every other developer on the planet, I’m using System.Text.StringBuilder class when I work with strings (for concatenating and formatting – because that’s what we’re using it for).

There’s also a very well known static method of System.String class called string.Format(string, string).
It’s being used when you want to do a quick and dirty string formatting, without having to initialize a new instance of System.Text.StringBuilder.

So today, I’ve asked myself: What does the string.Format(string, string) use internally?

There are 3 ways of getting an answer on that question.

1. Becoming a MVP and then becoming a member of the Shared Source Initiative program, under a very special NDA. That gives you access to the source of the Windows OS, and .NET as a part of it. After that you can’t discuss what you’ve seen with people outside that program. So writing a blog post like this one is not an option

2. Doing some refactoring with Resharper. It’s one of the best tools out there, when it comes to trying to find out what’s going on under the covers of any .NET assembly that haven’t been obfuscated.

3. Getting the source of SSCLI implementation of .NET. SSCLI is an open source initiative by Microsoft, that represents a good portion of the .NET Framework. Microsoft has released the v2 of SSCLI a couple of months ago, so it’s publicly available. While there is no guarantee that what you’ll see will be the same thing running in .NET 1.0/1.1/2.0, but it’s the closest thing you have. And it has the source of the CLR implementation of SSCLI along with some of the tools you get with .NET Framework SDK – something you can’t get to work with Resharper – most of those are native code.
You can get the SSCLI here: http://www.microsoft.com/downloads/details.aspx?FamilyId=8C09FD61-3F26-4555-AE17-3121B4F51D4D&displaylang=en.

At Tam Tam, we have the SSCLI under our source control database (we use Vault for source control system – it has very comfortable Web UI for accessing your sources).

So I’ve opened the repository were I’ve put the SSCLI into a few weeks ago, and found the implementation of the before mentioned method.

Here it is:

 

public static String Format(String format, Object arg0) {

            return Format(null, format, new Object[] {arg0});

        }

   

        public static String Format(String format, Object arg0, Object arg1) {

            return Format(null, format, new Object[] {arg0, arg1});

        }

   

        public static String Format(String format, Object arg0, Object arg1, Object arg2) {

            return Format(null, format, new Object[] {arg0, arg1, arg2});

        }

 

 

        public static String Format(String format, params Object[] args) {

            return Format(null, format, args);

        }

 

        public static String Format( IFormatProvider provider, String format, params Object[] args) {

            if (format == null || args == null)

                throw new ArgumentNullException((format==null)?"format":"args");

            StringBuilder sb = new StringBuilder(format.Length + args.Length * 8);

            sb.AppendFormat(provider,format,args);

            return sb.ToString();

        }

 

The important one is the last – the others are simply calling it with some default parameters.

It turns out that the method itself uses  System.Text.StringBuilder. So it’s safe to use it, when we have a simple concatenation or formatting and concatenation cases. Like the one I had.

 

posted by branimir | 0 Comments
More Posts Next page »