Articles filed in category 'Architecture'

  • Ken Getz finalize column - July/Aug 06
  • Ken Getz's Finalize column for Jan/Feb 07
  • ASP.NET is a powerful platform for building Web applications, that provides a tremendous amount of flexibility and power for building just about any kind of Web application. Most people are familiar only with the high level frameworks like WebForms and WebServices which sit at the very top level of the ASP.NET hierarchy. In this article I’ll describe the lower level aspects of ASP.NET and explain how requests move from Web Server to the ASP.NET runtime and then through t...See More
  • IT professionals agree that input is a big source of trouble. Input ultimately determines how applications work and wrong or malicious input may cause serious damage. It is extremely important that developers have this fact firmly in mind and consequently apply adequate countermeasures. Starting from the perspective that all input is evil is a good approach. Reasoning in terms of a whitelist instead of a blacklist is another excellent strategy. Working with strongly type...See More
  • Microsoft’s Entity Data Model allows you to define an application-oriented view of your data consistent with how you reason about that data.Part I of this article describes the Entity Data Model and how it enables you to represent real-world concepts in a way that makes relationships between related pieces of data more explicit and easier to query, navigate, and consume than through the traditional relational database model. Part II of the article discusses how Microsoft...See More
  • Web applications today do a number of things. They could be a banking site, a content management system, or a news Web site. In spite of the diversity of Web applications available today, it almost always makes sense to break a Web page into smaller, reusable widgets
  • Microsoft released ASP.NET MCV 3 just over a year ago. If history is a good indicator of timing, we can expect the next ASP.NET MVC release in the not too distant future. As of this writing’s date, Microsoft has not announced a firm release date. You don’t, however, have to wait to get your hands on the bits. You can download the developer preview here: http://www.asp.net/mvc/mvc4. ASP.NET MVC 4 also runs inside of Visual Studio 10 and the Visual Studio 11 Developer Prev...See More
  • Getting friendly with HTML in ASP.NET MVC just got a whole lot easier.In this article, I’ll delve into the Spark View Engine, an alternate view engine for the ASP.NET MVC Framework. Spark’s main goal is to allow HTML to dominate the flow of view development while allowing code to fit in seamlessly.
  • The Ultra-Mobile PC (UMPC) expands the market for PC games that run on Microsoft® Windows® XP, as long as developers consider certain design requirements to ensure a good user experience. In most cases, a single version of games can span both the UMPC and traditional PC platforms.
  • In this article, you will create a CODE Framework RESTful service and an iPhone application from scratch. For the client side, you will utilize XCode (yes, you’ll need a Mac!), which uses Objective-C as the primary language. This article won’t teach you the language; you need to know the basics of Objective-C. Even if you don’t know anything about it but want to code right away, read the article “Building a Twitter Search Client on iOS,” by Ben Scherman, available for al...See More
  • ASP.NET provides a couple of page-level state persistence mechanisms in ViewState and the new ControlState.While both mechanisms work, they both have some limitations in that they are not deterministic for the application developer-ViewState can be turned off and can be very bulky, and ControlState can only be set from within a control implementation. In this article I’ll show another, more flexible state mechanism using a PreservePropertyControl that allows automatic pe...See More
  • A Single Page Application (SPA) is a different way of building HTML 5 applications from traditional Web page development. Instead of spreading the functionality of your Web applications across a collection of separate Web pages with hyperlinks between them, you instead define a single root page that the user lands on and never leaves as long as they are working with your application. You define client-side logic that switches out the data and chunks of content within tha...See More
  • You already know that using Visual Studio 2013 streamlines building business apps. Beth shows you how to use its Cloud Business App project template to improve collaboration between Office 365, SharePoint, and all your mobile devices.
  • If you’re lucky enough to be involved in building a new enterprise system, you’ll want to check this out. Rachel takes a look at how the company where she works made some interesting—and forward-looking—decisions, and she shows us the benefits of microservices while she’s at it.
  • Essential C# 2.0 is a clear, concise guide to C#—including the features new to C# 2.0. The book clearly presents material for beginners and experts and provides contrasts and comparisons between C# and other languages. The C# language is covered comprehensively and each important construct is illustrated with succinct code examples. Complete code examples are available online. Mark Michaelis has organized the material for quick access. Graphical “mind maps” at the beginn...See More
  • In the last issue of CODE Magazine, we took a look at CODE Framework’s WPF features. This time, we are going to look at a completely different area of the framework: Creating business logic and middle tiers as SOA services. SOA is the cornerstone of many modern applications, creating systems that are more maintainable, flexible, and suitable for a wide range of scenarios, ranging from Windows to Web and Mobile scenarios using a wide variety of technologies, and outperfor...See More
  • Managing application configuration and meta-data could not get any easier.Every application needs some way to configure itself so that it may interact with a given environment, whether it is customizing the title bar captions for a specific client or setting database connection strings for a development environment. For the simplest of applications, the app.config or machine.config probably meets your needs. For complex applications where security, scalability, and deplo...See More
  • Creating messages in your Web application should be quick, easy, and most importantly, consistent.They should look like they belong with the rest of the application even if an error occurs. How often have you created a new page to display simple text or a notification message to your users? Wouldn’t it be better if you could reuse an existing template and simply pass in a few parameters to tell it to render an application-specific message? In this article I will show you...See More
  • A lot of articles have been written about database concurrency conflict detection and the various ways of handling them. Unfortunately most of these articles, and accompanying solutions, have one major flaw in that they focus on the technical issues and database implementation instead of real-world data and how people use the data. In this article, I will try to show the difference between focusing on the database implementation and on the real-world data. I will show so...See More
  • Stefano explores using containers for reusable components and patterns to simplify making reliable distributed systems. He leans on microservices to place all functionality within a single application.
  • Eventually SQL Server databases in a production environment must move from one server to another. It’s important to plan for eventual database moves when architecting a database solution.Designers and developers often overlook the eventuality that a database will need to move to a different server. This month’s column is the first of three dealing with the issues surrounding database moves. In this first part, you’ll learn about the reasons why you should plan for moving...See More
  • In ASP.NET, the value change related event will be triggered at server side per server control when the value of such a server control (form field) is changed upon postback. In most cases, a group of form fields are correlated with each other and typically correspond to member data in a business object. Thus developers need to check if such a group of form fields has changed as a whole. Unfortunately, the .NET Framework (1.x, 2.0) doesn’t offer an effective solution. Thi...See More
  • The ASP.NET Provider Model drives many features within the ASP.NET architecture, yet most people only relate it to security or membership-related functionality. In this article, I’ll take you deep into the provider model, show you how it’s used from a security context, then take it up a notch and teach you how you can use it to turn any feature in your application into an extensible and swappable component. In fact, I’ll even show you why calling it the ‘ASP.NET’ Provide...See More
  • Do more with less code is the slogan of Visual Studio 2005.When it comes to reducing the amount of written code, wizards are definitely a viable option. Visual Studio 2005 has a lot of wizardry in it, especially to generate data access code. Any code that gets silently injected in your project follows a strict logic and a well-known design pattern. A full understanding how Visual Studio 2005 does it puts you on the right track to modify and extend the code to build your ...See More
  • The future at Microsoft is cloudy, with an increasingly bleak chance of on-premises. It’s interesting to see how Microsoft is aggressively transitioning into a device and services company, and that on-premises applications are getting step-child treatment lately. Almost all of the innovation lately happens on or for the cloud, and if we are lucky, we get morsels of treats in our on-premises doggie bag. I’m not complaining, merely observing. A move to the cloud makes a lot of sense.
  • Enterprise Application Integration (EAI) is a collection of architectural principles combined to integrate new and existing applications both within the enterprise and in business to business or partner integration scenarios. Building on the principles introduced in Part 1 (May/June issue of CoDe Magazine), I’ll provide a step-by-step example of how to implement a solution that addresses a business case and suggest some real-world patterns and techniques for fulfilling the business case.
  • Enterprise Application Integration (EAI) is a collection of architectural principles combined to integrate new and existing applications both within the enterprise and in business to business or partner integration scenarios. This article (Part 1) will provide a conceptual overview of BizTalk Server 2006 and how it serves to address the problem domain common in the EAI space. In Part 2, I’ll introduce a business case for implementing an online ordering and fulfillment sy...See More
  • Delivering applications and services that are highly available is expensive.
  • Visual Studio LightSwitch applications consist of three tiers: presentation, logic and data. This article discusses the logic tier and its save pipeline. The save pipeline is where developers write business logic that runs as changes are processed on the logic tier and saved to the data storage tier. The save pipeline is automatically generated with every LightSwitch application. Understanding the processing done in the save pipeline is not required to successfully build...See More
  • New releases ASP.NET Core and .NET Core have come up with some interesting high-level architecture that you’ll want to read about. You’ll definitely want to play with these tools after Rick shows you some cool new tricks.
  • Using code snippets can make it quick to add common code pieces to your application. Creating your own snippets allows you to create a library of custom code pieces and share them with other developers.
  • Nov/Dec 08 .NET Rocks by Carl Franklin
  • Take the first step in raising your robot army and meet the Arduino, the microcontroller designed to be approachable and fun. From blinky lights to motors, temperature sensors to wi-fi, RFID to MIDI, you can make your code do stuff.
  • Ben Coe gives us tips on planning an engineering project when you’re starting with a blank slate. He starts with hosting options, addresses scaling, and looks at tools like Heroku, Amazon’s Web Services (AWS), Amazon’s Elastic Computing Cloud (EC2), and the Twelve-Factor App Manifesto.
  • Windows Communication Foundation (WCF) Services can be hosted with Internet Information Services (IIS); with the new Windows Activation Service (WAS) installed with IIS 7.0; or with any managed application process including console, Windows Forms, Windows Presentation Foundation (WPF), or managed Windows service applications.Selecting the right hosting environment for your services is a choice driven largely by deployment requirements related to transport protocol and operating platform.
  • I Object
  • Partial classes are a hot new feature of the next .NET compilers.Specifically designed to overcome the brittleness of tool-generated code, partial classes are a source-level, assembly-limited, non-object-oriented way to extend the behavior of a class. A number of advantages derive from intensive use of partial classes; for example, you can have multiple teams at work on the same component at the same time. In addition, you have a neat and elegant incremental way to add functionality to a class.
  • Microsoft Visual Studio LightSwitch uses a model-centric architecture for defining, building, and executing a 3-tier LightSwitch application.
  • The Microsoft® Sync Framework is the new framework and runtime for adding synchronization, roaming, and offline capabilities to applications. It supports peer-to-peer scenarios, works with devices and services, and is agnostic of data types, stores, and protocols. In this article, I’ll cover the high-level vision for the platform as well as the enabled scenarios made possible by the framework for developers, ISVs, and OEMs.
  • Building loosely coupled application architectures requires more than just separating your application into different layers.In this article, I’ll take a project that was built using techniques that result in fragile, hard-to-test code and introduce some principles, techniques, and refactorings that will help you realize flexibility and testability in your applications.
  • In show #270 Richard and I talked to Erik Meijer from Microsoft about LINQ. In this excerpt we talk about LINQ to Entities.
  • Users already have many usernames and passwords for different popular online services, and with OpenID and OAuth, you can leverage those. Why burden users with yet another set of credentials for your site if they can use their Google or Facebook account, or any other OpenID or OAuth account? In this article, I will show you how to do this with ASP.NET 4.5, but more importantly help you understand what’s going on behind the scenes.
  • COM+ introduces a new way to architect and extend applications:The COM+ Event Service. This service is extremely flexible and much easier to handle and maintain than all other COM based event models we've seen so far. They are especially useful for business events that can now be published throughout the system without losing any control over business rules.
  • As applications become more complex, designing with components becomes a very important factor in the successful completion of projects.This article discusses n-tier application design, why it's important to modern application development, and shows strategies for breaking out the tiers using Visual FoxPro.
  • Fifteen years after its launch, ODBC is a firmly entrenched cornerstone of the software industry. This article explains why and will explore the relationship between Microsoft SQL Server and ODBC and discuss where ODBC may go in the future.
  • In .NET Web applications you can find that in many places custom classes and collections are better choices than the DataSet or DataTable. The custom classes or the custom class collections, which are truly object oriented, allow developers to employ all object-oriented programming techniques.
  • First Premier Bankcard (www.firstpremier.com) is the 10th largest issuer of Visa and MasterCard credit cards in the United States.First Premier employs multiple thousands of people spread across the state of South Dakota. A major percentage of the employees at First Premier work in call-center operations helping people apply for credit cards.
  • July/August2010 Post Mortem by Markus Egger
  • Indigo is the next generation application connectivity and services from Microsoft, superseding the variety of .NET connectivity solutions available today: ASMX Web services, Remoting, and Enterprise Services. Since .NET debuted some five years ago, all three technologies have been inundated in either hype or misconceptions. With Indigo around the corner, it is time to take a long hard look at these three technologies, and separate fact from myth so that you will be best...See More
  • The ADO.NET Entity Framework raises the level of abstraction at which developers work with data.Rather than coding against rows and columns, the ADO.NET Entity Framework allows you to define a higher-level Entity Data Model over your relational data, and then program in terms of this model. You get to deal with your data in the shapes that make sense for your application and those shapes are expressed in a richer vocabulary that include concepts like inheritance, complex...See More
  • Do you ever feel like you’re beating your head against a wall? I know I do; quite often, in fact. It seems like developers spend half of their time bending technology to their purposes when the technology doesn’t really quite fit. Well, I’m actually thinking of one problem in particular right now, namely that of validation. Can you think of a more boring topic? There are few, but I think you can agree that it is an extremely important one in business software.
  • In the world of browser-based development, interoperability is king. Unfortunately, interoperability can be at the expense of performance.
  • Ned introduces the most significant advance in error handling since exceptions and he shows you a new way to look at errors.This article introduces the most significant advance in error handling since exceptions.You get improved tools for today and a glimpse of radical possibilities for tomorrow. You get a framework which supports more expressive error handlers and gives them equal access to error context information. You get a roadmap for adding improved error handling ...See More
  • Modern applications are no longer isolated, stand-alone applications, limited to a single process or machine. Distributed applications allow you to put components in close proximity to the resources they use, allow multiple users to access the application, enable scalability and throughput, and increase overall availability and fault isolation. Component-oriented programming is especially geared towards distribution because it is all about breaking the application into a...See More
  • Rick Garibay takes you on a tour of cloud-based messaging services including Windows Azure BizTalk Services (WABS), Enterprise Application Integration (EAI), and Windows Azure.
  • If you need to use a language that compiles to native code and runs without any runtime support, you might consider Rust. Ted takes us on a tour of this new language.
  • Derick outlines how to achieve the benefits of low coupling, high cohesion, and strong encapsulation. He also shows how the five S.O.L.I.D. design principles can get you there.Most professional software developers understand the academic definitions of coupling, cohesion, and encapsulation.However, many developers do not understand how to achieve the benefits of low coupling, high cohesion and strong encapsulation, as outlined in this article. Fortunately, others have cr...See More
  • Service-Oriented Architecture, or SOA, is the newest acronym to become a buzzword among developers, IT Managers, and CTOs.It seems that everyone is talking about making an SOA and how much it will improve their operations, yet most people are hard-pressed to define not only what an SOA is, but also to quantify what specific value it might provide to their organizations. Many simply assert that their SOA architecture comprises a group of Web Services through which they ca...See More
  • An important principal of software design is that of “least privilege.”Basically, in any given layer of a program, you should only grant minimal access such that the code has rights to only exactly the resources it needs to get its job done-and nothing more. Most SQL Server developers understand this concept: one of the main reasons to use stored procedures is to encapsulate permission to data behind controlled and auditable interfaces, thereby not giving the caller direct access.
  • In our service-oriented world, users need the same experience on any device, whether mobile phone, office PC, or Internet café. Moreover, they want the same experience any time they access applications, offline or online. For developers, this means tackling multi-tier, distributed, and concurrent programming. LINQ 1.0 radically simplified multi-tier programming with unified query and deep XML support. TESLA is a broad engineering program by the authors to extend the succ...See More
  • Regardless of your .NET language of choice, managing data is a vital skill for most applications. Developers frequently must work with data at different levels, with different tools, and in different forms. This article is the first in a two-part series on some of the more common data challenges that developers face. In Part 1 of this article, I’ll cover some capabilities in ADO.NET 2.0, ASP.NET 2.0, and T-SQL 2005. Part 2 will feature some additional T-SQL 2005 coverage...See More
  • This installment of “The Baker’s Dozen” presents a variety of tips and techniques to become productive with data handling techniques using ADO.NET 2.0 in Visual Studio 2005. ADO.NET 2.0 is faster than the first version of ADO.NET; in some instances, significantly faster. While many view ADO.NET 2.0 as more evolutionary than revolutionary, it provides many functions to give developers greater control over data access and data manipulation. It also leverages the new databa...See More
  • Lookup and navigation screens initially seem like no-brainers, when compared to other parts of an application-yet by the time a developer has met all the user requirements and requests, he/she has expended much more time than expected. This issue of The Baker’s Dozen will build a lookup Web page using ASP.NET 2.0, SQL Server 2005, and C# 2.0. The lookup and results page will contain optional lookup criteria and custom paging of the result set. The solution will utilize n...See More
  • This article will present a crash-course in the basics of Windows Communication Foundation (WCF). WCF is one of the exciting new capabilities in the .NET 3.0 Framework. It provides a unified and uniform programming model for building distributed applications. Those who previously built multiple code bases to deal with Web services and .NET remoting will surely come to appreciate the power standardization that WCF offers. WCF, like any other new technology, requires resea...See More
  • Windows DNA (as well as the recently announced .NET), and component based development in general, are fascinating approaches to application development.They provide great flexibility, scalability and freedom of distribution. Unfortunately, there has been a substantial delay in the widespread implementation of DNA applications. Surprisingly, the responsibility for this delay seems to lie with developers...
  • Dino explains the business layer so that even a seven-year-old can understand.
  • In this article you will learn how to isolate yourself from change by taking advantage of the Provider Model.Designing your applications using the Provider Model will allow you to swap components out at runtime, thus allowing you to upgrade them easily.
  • In this interesting exploration of design, John looks at all kinds of design, from architecture to household appliances, showing us the best way to figure out what’s necessary and what isn’t.
  • In another of his edifying series, John shows us how to get a response whether your code fails or succeeds using promises.
  • John builds on the modeling tools he showed us in the last issue (Dependency Graph and Layer Diagram) using UML diagrams in Visual Studio.
  • On the surface, this article is about the techniques of dependency injection and inversion of control.Underneath, the intent of the words and code samples is to get you to think about the questions of “why” and “when” you might want to use these two closely related techniques, as well a series of similar evolutionary techniques that lead up to the full-blown dependency injection. The initial code samples are admittedly (and deliberately) simple; I do not want the content...See More
  • If you want to develop code that’s flexible, extensible, maintainable, and testable, you’ll want to read Paul’s article about some basic things to keep in mind before you start.
  • When I started my company Attachments.me three years ago, NoSQL was a hot topic. Advocates preached impressive benefits:
  • Class diagrams are among the centerpieces of the Unified Modeling Language.They are critical for helping you design classes that will serve as building blocks for your application. This article will cover the basics of class diagrams and help you see how you can use them in your software development?especially in building your business object classes.
  • In well-designed software systems, powerful business objects work together to accomplish a variety of tasks.UML collaboration diagrams are great tools for documenting the flow of messages between objects while providing a unique perspective - a view of the relationships between collaborating objects.
  • The Sequence Diagram is one of the most interesting and useful diagrams in the Unified Modeling Language (UML).It helps you document and understand the dynamic aspects of your software system?specifically the sequence of messages that are sent and received between objects. Sequence diagrams can help you comprehend and solve difficult issues in the process-intensive portions of your applications.
  • We seem to be an industry enamored with buzz words. Even though XmlHttpRequest has been around since the mid-90s, mainstream programmers didn’t give it a second thought until someone attached the term AJAX to it. The same is true for the never-ending quest to put as many different words as we can in front of “driven-development.” Another term that hit the scene in recent years is dependency injection.
  • Microservices and Microservices Architecture are what Service Oriented Architecture aimed to be by focusing not only on service decomposition, but also associated characteristics that make your entire application resilient and robust. Miguel explains the what, why, and how of the latest architectural buzz word.
  • Applications use many forms of configuration data, storing settings that are used in applications, enterprise, client computers, and user settings.The Configuration Management Application Block (CMAB) is typically used for application settings, but it can be enhanced to support more complicated settings as well.
  • XML is one of the key technologies that is driving Enterprise Web development today.XML promises a standard data format that can be shared easily by different organizations. In this installation of this two part series, Rick reviews XML's key features and problems as a data representation format for relational data and objects. He'll also introduce some free tools to provide easy translation between XML and traditional data structures and shows how to use them with quick...See More
  • Keeping up with Visual Studio’s frequent and often simultaneous releases from multiple sources can be nearly impossible. In another of his edifying series, John Petersen gives us the scoop.
  • This article introduces a few of the coolest features in RavenDB 2.5, but before I get to the stuff that will make you drool, there is a slight possibility that you aren't familiar with RavenDB. The next section fixes that, and then I will go into what is new and cool.
  • Chris shows you not only how, but also why you really want to use a Micro JavaScript Library.
  • Michiel van Otegem explains Software-as-a-Service by comparing various online products and shows you how to store information about users whether you use Active Directory or Windows Azure Active Directory in the cloud.
  • When creating a Windows DNA application, it is not enough to start creating COM objects and run them under MTS.Rather what is needed is a standard approach to analyzing DNA applications. This article provides a pattern language for COM objects. The purpose of this pattern language is to standardize discussion of types of components so that the design of these applications becomes more standardized.
  • When developing with Windows Live services, you open your application to a whole new world of software integration. In this fascinating realm of mash-up mania, developers can find tools for adding maps, searches, video, chats, and even social networking services directly into their applications and ultimately right into their users’ browsers. The benefit of adding services like Virtual Earth and Silverlight Streaming are obvious-creating dazzling content and facilitating...See More