Developer Question

I’ve decided to expand my developer skills and learn more javascript. I really need to step up my game and sharpen my front-end skills. So I’ve spent the past week on studying up on AngularJS.

I am loving its capabilities and what you can do with it, especially when combined with bootstrap. I’m a .NET developer so I am deeply entrenched in ASP.NET, so of course, I want to combine the two. I found a great talk that Miguel Castro did on how to merge Angular with ASP.NET MVC. It’s exactly what I want to accomplish.

But I’ve seen so many tutorials on Angular and it’s gotten me curious. What is the most common backend for sites built with Angular. If any developers out there happen to see this post, please comment. I want to know. PHP, Java, .NET Web API, or something else?

Advertisements

Organizing my Worklife

At work, I develop software. There are about 10 of us developers, but we work mostly alone. Each of us is responsible for one or more systems. We each wear all the hats:

  • server admin
  • database admin
  • development
  • testing
  • deployment
  • user support
  • anything else you can think of

As the single “team member” for a project, it can be a bit overwhelming trying to keep track of everything for the multiple projects we are responsible for.

I’m also a scatterbrained coder. I’ll work on various unrelated changes at the same time. I’m trying hard to focus on one task at a time, but it’s a slow change.

In an attempt to get a bit more organized, I’m also trying to develop some sort of accountability. Not only to show my supervisors what I’m doing all day long, but to help me keep track of what needs to be done and keep me focused on the current task.

This is where Team Foundation Server comes into play. With the new release of 2012, I now have some great features that can help me along.

The addition of My Work helps me stay on track. If I move a task to “In Progress”, I can always see this at a glance as I code and remember not to get sidetracked.

I still have trouble writing up backlog items and tasks (I forget to document what needs to be done; I just do it). But I think that the new web interface and team explorer window will help me there too. It’s just another “in my face” reminder that I need to log tasks and stories as they come up. My biggest problem is that I simply forget. And if I’ve gotten sidetracked by some other thing I need to work on, then its even more likely I won’t remember later what it was I needed to get back to.

My system is constantly changing and evolving as new requirements are realized and it is important for me to document it all. Not just for auditing purposes either.

I recently started a new project, which is actually a redesign of an existing website to resolve some hard issues. It’s the perfect opportunity to start out with a clean set of requirements and tasks that I need to work on.

The new interface also makes it easy for me to plan and later see what I need to work on for the week. If I finish everything for the week, I can move new tasks in. If I don’t get them finished, I can move them over to the next week. And with multiple projects going on at the same time, it’s even more important to plan out my task schedule so that everything is prioritized and gets done.

My biggest adjustment will be just remembering to use it. Add new requirements as they come up…add tasks. Use the functionality to plan what I need to do, do it, and stay focused on the task at hand.

Entity Framework Code First

I’m trying to wrap my head around the latest update to Entity Framework 4.1. I’m trying to use Code First to create an object model that will map successfully to an existing database.

So far I think it will work for my needs and I’m pretty sure it will be easier to program against since I can use Linq to Entities to query. It’s just a matter of figuring out how to make it work for what I need. So I’m tring to figure out Complex Types, but like everything I think I’m making it more complicated that it really is. I need to nest my complex types, but specify the column names. I’m guessing I can do that with the Fluent API via the entity that is using it as a property. See below.

public class Complaint
{
   public int ComplaintID {get; set;}
   public Location Location {get; set;}
}
[ComplexType]
public class Location
{
   public string County {get; set;}
   public decimal? Latitude {get; set;}
   public decimal? Longitude {get; set;}
   public Address Address {get; set;}
}
[ComplexType]
public class Address
{
   public string Street {get; set;}
   public string City {get; set;}
   public string ZipCode {get; set;}
}

In the context, I would define the column as such:

modelBuilder.Entity().Property(c=>c.Location.Address.Street).HasColumnName("LocationAddress");

Is this the way to handle this? If someone sees this and can tell me if/where I’m wrong, please feel free to comment. I really would love to make this work. I would like to eventually use this model instead of the edmx or sqlDataSource I’m currently using. This model would be backing 2 projects (wpf desktop app and asp.net). And once I get this model figured out, I can do the same for a few other projects I’ve got.

I will have a lot of work to do but I think it will be easier to code against once all this work is done.

I’m in a Code Crunch, but Still Fortunate

CodeI am a .NET developer for a large State Government entity. In this role, I was tasked to create a new system with both an internal application and a public website. The public website would be for the outside world to view the information being processed in the internal application. Many outside sources have been pushing for this system for years, long before I started working here. I was the chosen one when I came onboard, to develop this system once and for all and get it into production. There was one catch, ok, maybe more than one. The deadline was yesterday. How familiar does that sound? The other catch, no one wanted to take lead on this project. As the new developer I couldn’t take lead. I don’t even know their business process. Of course, they don’t even know their business process so they couldn’t even begin to tell me what they needed from the system.

It’s definitely been a challenge. I’ve currently got the internal application in production (albeit in “test” capacity), so they can start using it and adding data. Thankfully, it was stressed that it is an unstable release and the data could all disappear. That was the risk they were willing to take to get this thing off the ground. The website will be partially launched in the next few weeks. Then I can hopefully get some of the bugs worked out of the internal app while working on the 2nd part of the website.

I am fortunate though. There is a light in all this madness. With all these stressors, my supervisors completely understand the pressure being put on me to have everything working now with no input from the people who will be using the system or the people who want delivery. I’m just expected to whip something up out of thin air. They do know the deadlines are unreasonable for one programmer that isn’t getting any input or direction.

This understanding makes it all seem not so bad. To have that backing from my supervisors is a Godsend, really. So when I don’t produce results as fast as TPTB want them, it’s not on my shoulders. They know I’m working as fast as I can while also trying to be as thorough and as good as I can. Too fast can be sloppy and result in a really bad situation.

I am truly grateful to have supervisors  who understand…many do not as they are not developers themselves. Some of mine aren’t either, they are engineers, or business folk. But they understand and that makes my working environment so much better to have them on my side. I’m very lucky to be working where I am.